[PATCH v2] fixdep: add fstat error handling

David Leonard d+busybox at adaptive-enterprises.com
Thu Apr 25 08:21:01 UTC 2024


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.

David


More information about the busybox mailing list