On Wed, 2007-03-07 at 22:22 +0100, Jim Meyering wrote:
>       * libparted/tests/common.c (_create_disk): Rewrite to
>       use mkstemp instead.
> 
> diff --git a/libparted/tests/common.c b/libparted/tests/common.c
> index af5b983..642da23 100644
> --- a/libparted/tests/common.c
> +++ b/libparted/tests/common.c
> @@ -8,20 +8,25 @@
> 
>  char *_create_disk (const off_t size)
>  {
> -             char filename[] = "parted-test-XXXXXX";
> -             mktemp (filename);
> +             char *filename = strdup ("parted-test-XXXXXX");
> +             if (filename == NULL)
> +               return NULL;
> +             int fd = mkstemp (filename);
> +             if (fd < 0) {
> +     free_filename:;
> +                     free (filename);
> +                     return NULL;
> +             }
> 
> -             FILE *disk = fopen (filename, "w");
> +             FILE *disk = fdopen (fd, "w");
>               if (disk == NULL)
> -                     /* FIXME: give a diagnostic? */
> -                     return NULL;
> +                     goto free_filename;
>               off_t total_size = size * 1024 * 1024;  /* Mb */
> 
> -             fseek (disk, total_size, SEEK_SET);
> -             fwrite ("", sizeof (char), 1, disk);
> -             if (fclose (disk) != 0)
> -                   /* FIXME: give a diagnostic? */
> -                   return NULL;
> +             int fail = (fseek (disk, total_size, SEEK_SET) != 0
> +                         || fwrite ("", sizeof (char), 1, disk) != 1);
> +             if (fclose (disk) != 0 || fail)
> +                     goto free_filename;
> 
> -             return strdup (filename);
> +             return filename;
>  }

Nice patch, Jim.  It's often hard to allocate time to fix something that
still works, but that you shouldn't use.

-- 
David Cantrell <[EMAIL PROTECTED]>
Red Hat / Westford, MA

Attachment: signature.asc
Description: This is a digitally signed message part

_______________________________________________
parted-devel mailing list
[email protected]
http://lists.alioth.debian.org/mailman/listinfo/parted-devel

Reply via email to