Jonathan Nieder <jrnie...@gmail.com> writes:

>> @@ -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 <jrnie...@gmail.com>

Thanks.  

Reply via email to