[LEDE-DEV] [PATCH uclient] Fix unused results warnings

John Crispin john at phrozen.org
Sun Dec 4 07:14:19 PST 2016



On 03/12/2016 18:58, Florian Fainelli wrote:
> Fixes:
> 
> uclient-http.c:385:8: error: ignoring return value of 'fread', declared with attribute warn_unused_result [-Werror=unused-result]
>    fread(&val, sizeof(val), 1, f);
>         ^
> 
> uclient-fetch.c: In function 'main':
> uclient-fetch.c:664:12: error: ignoring return value of 'asprintf', declared with attribute warn_unused_result [-Werror=unused-result]
>     asprintf(&auth_str, "%s:%s", username, password);
>             ^
> uclient-fetch.c: In function 'read_data_cb':
> uclient-fetch.c:269:9: error: ignoring return value of 'write', declared with attribute warn_unused_result [-Werror=unused-result]
>     write(output_fd, buf, len);
> 
> Signed-off-by: Florian Fainelli <f.fainelli at gmail.com>
> ---
>  uclient-fetch.c | 16 +++++++++++-----
>  uclient-http.c  |  5 ++++-
>  2 files changed, 15 insertions(+), 6 deletions(-)
> 
> diff --git a/uclient-fetch.c b/uclient-fetch.c
> index 4c603fbc1945..db13e81bf8d0 100644
> --- a/uclient-fetch.c
> +++ b/uclient-fetch.c
> @@ -254,6 +254,7 @@ static void header_done_cb(struct uclient *cl)
>  static void read_data_cb(struct uclient *cl)
>  {
>  	char buf[256];
> +	size_t n;
>  	int len;
>  
>  	if (!no_output && output_fd < 0)
> @@ -265,8 +266,11 @@ static void read_data_cb(struct uclient *cl)
>  			return;
>  
>  		out_bytes += len;
> -		if (!no_output)
> -			write(output_fd, buf, len);
> +		if (!no_output) {
> +			n = write(output_fd, buf, len);
> +			if (n < len)
> +				return;
> +		}
>  	}
>  }
>  
> @@ -660,9 +664,11 @@ int main(int argc, char **argv)
>  	uloop_init();
>  
>  	if (username) {
> -		if (password)
> -			asprintf(&auth_str, "%s:%s", username, password);
> -		else
> +		if (password) {
> +			rc = asprintf(&auth_str, "%s:%s", username, password);
> +			if (rc < 0)
> +				return rc;
> +		} else
>  			auth_str = username;
>  	}
>  
> diff --git a/uclient-http.c b/uclient-http.c
> index 8d26bd4884be..80f40d0e40e3 100644
> --- a/uclient-http.c
> +++ b/uclient-http.c
> @@ -379,11 +379,14 @@ get_cnonce(char *dest)
>  {
>  	uint32_t val = 0;
>  	FILE *f;
> +	size_t n;
>  
>  	f = fopen("/dev/urandom", "r");
>  	if (f) {
> -		fread(&val, sizeof(val), 1, f);
> +		n = fread(&val, sizeof(val), 1, f);
>  		fclose(f);
> +		if (n != sizeof(val))
> +			return;
>  	}

from the man page "On success, fread() and fwrite() return the number of
items read or written.  This number equals the number of bytes
transferred only when size is 1.  If an error occurs, or the end of the
file  is  reached,  the  return value is a short item count (or zero)."
so the check should be (n != 1) i think.

	John


>  
>  	bin_to_hex(dest, &val, sizeof(val));
> 



More information about the Lede-dev mailing list