[PATCH v2] fixdep: add fstat error handling

Sam James sam at gentoo.org
Wed May 1 00:25:19 UTC 2024


David Leonard <d+busybox at adaptive-enterprises.com> writes:

> On Tue, 23 Apr 2024, Sam James wrote:
>
>> 	}
>> -	fstat(fd, &st);
>> +	if (fstat(fd, &st) < 0) {
>> +		fprintf(stderr, "fixdep: fstat");
>> +		perror(filename);
>> +		exit(2);
>> +	}
>> 	if (st.st_size == 0) {
>> 		close(fd);
>> 		return;
>> @@ -368,7 +372,11 @@ void print_deps(void)
>> 		perror(depfile);
>> 		exit(2);
>> 	}
>> -	fstat(fd, &st);
>> +	if (fstat(fd, &st) < 0) {
>> +		fprintf(stderr, "fixdep: fstat");
>> +		perror(depfile);
>> +		exit(2);
>> +	}
>> 	if (st.st_size == 0) {
>> 		fprintf(stderr,"fixdep: %s is empty\n",depfile);
>> 		close(fd);
>
> I worry that the fprintf() may destroy the errno which perror() uses,
> so you could get a random error message.
> Perhaps remove the fprintf(s) completely? Because the context should be
> clear enough from the filename alone that perror displays.

Ah, a great point. Any preference between just stripping the fprintfs vs
a better argument to perror, as we do in some places (but not very
consistently)?

I don't think I have a strong preference.

>
> David

thanks,
sam


More information about the busybox mailing list