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

Florian Fainelli f.fainelli at gmail.com
Sun Dec 4 13:02:50 PST 2016


Le 12/04/16 à 07:14, John Crispin a écrit :
> 
> 
> 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.

Humm yes good point, thanks!
-- 
Florian



More information about the Lede-dev mailing list