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.faine...@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)); > _______________________________________________ Lede-dev mailing list Lede-dev@lists.infradead.org http://lists.infradead.org/mailman/listinfo/lede-dev