From: Stefan Beller Date: Sat, 30 Aug 2014 11:59:33 GMT Subject: Re: [PATCH v2 19/19] signed push: fortify against replay attacks 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: > @@ -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