bump.

On Tue, Jul 31, 2012 at 03:15:51PM +0200, Manuel Zerpies wrote:
> From: Manuel Zerpies <[email protected]>
> 
> Check the return values of read(), write() and fgets().
> 
> Signed-off-by: Manuel Zerpies <[email protected]>
> ---
>  applets/applet_tables.c |    5 ++++-
>  applets/usage.c         |    7 +++++--
>  libbb/lineedit.c        |    4 +++-
>  libbb/xfuncs_printf.c   |    4 +++-
>  4 files changed, 15 insertions(+), 5 deletions(-)
> 
> diff --git a/applets/applet_tables.c b/applets/applet_tables.c
> index 152d5f4..ffd4a82 100644
> --- a/applets/applet_tables.c
> +++ b/applets/applet_tables.c
> @@ -141,8 +141,11 @@ int main(int argc, char **argv)
>               line_old[0] = 0;
>               fp = fopen(argv[2], "r");
>               if (fp) {
> -                     fgets(line_old, sizeof(line_old), fp);
> +                     char *c = fgets(line_old, sizeof(line_old), fp);
>                       fclose(fp);
> +                     if (c == NULL) {
> +                             return 1;
> +                     }
>               }
>               sprintf(line_new, "#define NUM_APPLETS %u\n", NUM_APPLETS);
>               if (strcmp(line_old, line_new) != 0) {
> diff --git a/applets/usage.c b/applets/usage.c
> index 94520ff..faa6b27 100644
> --- a/applets/usage.c
> +++ b/applets/usage.c
> @@ -48,8 +48,11 @@ int main(void)
>       qsort(usage_array,
>               num_messages, sizeof(usage_array[0]),
>               compare_func);
> -     for (i = 0; i < num_messages; i++)
> -             write(STDOUT_FILENO, usage_array[i].usage, 
> strlen(usage_array[i].usage) + 1);
> +     for (i = 0; i < num_messages; i++) {
> +             ssize_t r = write(STDOUT_FILENO, usage_array[i].usage, 
> strlen(usage_array[i].usage) + 1);
> +             if (r < 0)
> +                     return 1;
> +     }
>  
>       return 0;
>  }
> diff --git a/libbb/lineedit.c b/libbb/lineedit.c
> index b89748a..356c7f1 100644
> --- a/libbb/lineedit.c
> +++ b/libbb/lineedit.c
> @@ -2729,7 +2729,9 @@ int FAST_FUNC read_line_input(const char* prompt, char* 
> command, int maxsize)
>  {
>       fputs(prompt, stdout);
>       fflush_all();
> -     fgets(command, maxsize, stdin);
> +     char *c = fgets(command, maxsize, stdin);
> +     if (c == NULL)
> +             return 0;
>       return strlen(command);
>  }
>  
> diff --git a/libbb/xfuncs_printf.c b/libbb/xfuncs_printf.c
> index 29c963f..9c76fbb 100644
> --- a/libbb/xfuncs_printf.c
> +++ b/libbb/xfuncs_printf.c
> @@ -590,8 +590,10 @@ void FAST_FUNC generate_uuid(uint8_t *buf)
>  
>       i = open("/dev/urandom", O_RDONLY);
>       if (i >= 0) {
> -             read(i, buf, 16);
> +             ssize_t r = read(i, buf, 16);
>               close(i);
> +             if (r < 0)
> +                     return;
>       }
>       /* Paranoia. /dev/urandom may be missing.
>        * rand() is guaranteed to generate at least [0, 2^15) range,
> -- 
> 1.7.0.4
> 
_______________________________________________
busybox mailing list
[email protected]
http://lists.busybox.net/mailman/listinfo/busybox

Reply via email to