X-Git-Url: http://git.tremily.us/?a=blobdiff_plain;f=ident.c;h=1c123e685fbfbfcd5289958adc54a6cd48351628;hb=7ed1690c343dc16dfd5a5493589cbf74d503c238;hp=ac9672f607909111167559e3aa58e1585f05d0d8;hpb=74abc17f9152e440c4cc672f41473604ed46f60d;p=git.git diff --git a/ident.c b/ident.c index ac9672f60..1c123e685 100644 --- a/ident.c +++ b/ident.c @@ -46,6 +46,7 @@ static void copy_gecos(const struct passwd *w, struct strbuf *name) static int add_mailname_host(struct strbuf *buf) { FILE *mailname; + struct strbuf mailnamebuf = STRBUF_INIT; mailname = fopen("/etc/mailname", "r"); if (!mailname) { @@ -54,14 +55,17 @@ static int add_mailname_host(struct strbuf *buf) strerror(errno)); return -1; } - if (strbuf_getline(buf, mailname, '\n') == EOF) { + if (strbuf_getline(&mailnamebuf, mailname, '\n') == EOF) { if (ferror(mailname)) warning("cannot read /etc/mailname: %s", strerror(errno)); + strbuf_release(&mailnamebuf); fclose(mailname); return -1; } /* success! */ + strbuf_addbuf(buf, &mailnamebuf); + strbuf_release(&mailnamebuf); fclose(mailname); return 0; }