Re: [PATCH v2 19/19] signed push: fortify against replay attacks
- From
Stefan Beller <stefanbeller@gmail.com>
- Date
- Aug 30, 2014, 11:59 UTC
- Message-ID
- <5401BCA5.70502@gmail.com>
- In-Reply-To
- <1408739424-31429-20-git-send-email-gitster@pobox.com>
On 22.08.2014 22:30, Junio C Hamano wrote:
Show 19 quoted lines
> @@ -1226,12 +1232,28 @@ static int delete_only(struct command *commands)
> return 1;
> }
>
> +static char *prepare_push_cert_nonce(const char *sitename, const char *dir)
> +{
> + struct strbuf buf = STRBUF_INIT;
> + unsigned char sha1[20];
> +
> + if (!sitename) {
> + static char buf[1024];
> + gethostname(buf, sizeof(buf));
> + sitename = buf;
> + }
> + strbuf_addf(&buf, "%s:%s:%lu", sitename, dir, time(NULL));
> + hash_sha1_file(buf.buf, buf.len, "blob", sha1);
> + return xstrdup(sha1_to_hex(sha1));
> +}
> +On every other use of gethostname within git.git we're checking the return code. And if gethostname fails, we're either copying in 'localhost' or 'unknown' instead.
Does that make sense here as well?
Found by coverity scan.
Thanks, Stefan