Re: [PATCH v3 1/2] use HOST_NAME_MAX to size buffers for gethostname(2)
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Apr 19, 2017, 02:57 UTC
- Message-ID
- <xmqqzifdayuc.fsf@gitster.mtv.corp.google.com>
- In-Reply-To
- <20170419012824.GA28740@aiede.svl.corp.google.com>
Jonathan Nieder <jrnieder@gmail.com> writes:
Show 22 quoted lines
>> @@ -274,7 +278,7 @@ static const char *lock_repo_for_gc(int force, pid_t* ret_pid) >> * running. >> */ >> time(NULL) - st.st_mtime <= 12 * 3600 && >> - fscanf(fp, "%"SCNuMAX" %127c", &pid, locking_host) == 2 && >> + fscanf(fp, scan_fmt, &pid, locking_host) == 2 && > > I hoped this could be simplified since HOST_NAME_MAX is a numeric literal, > using the double-expansion trick: > > #define STR_(s) # s > #define STR(s) STR_(s) > > fscanf(fp, "%" SCNuMAX " %" STR(HOST_NAME_MAX) "c", > &pid, locking_host); > > Unfortunately, I don't think there's anything stopping a platform from > defining > > #define HOST_NAME_MAX 0x100 > > which would break that.
Yes, that was exactly why I went to the xstrfmt() route when I sent mine yesterday ;-).
> So this run-time calculation appears to be necessary. > > Reviewed-by: Jonathan Nieder <jrnieder@gmail.com>
Thanks.