Hello Paul,

* Paul Eggert wrote on Wed, Oct 17, 2007 at 01:41:21AM CEST:
> 
> That bug isn't in the libc version.  At this point it's probably better
> to sync the gnulib version from libc, so I installed this:
> 
> 2007-10-16  Paul Eggert  <[EMAIL PROTECTED]>
> 
>       Merge glibc changes into lib/glob.c.
[...]

> +     memory_error:
> +       while (1)
> +         {
> +           struct globnames *old = names;
> +           for (size_t i = 0; i < cur; ++i)

That doesn't look like C89 to me.

> +             free (names->name[i]);
[...]
> +       while (1)
> +         {
> +           struct globnames *old = names;
> +           for (size_t i = 0; i < cur; ++i)
> +             new_gl_pathv[pglob->gl_offs + pglob->gl_pathc++]
> +               = names->name[i];

This patch should fix the C89 issues.  Should I report this upstream?

Cheers,
Ralf

2007-10-22  Ralf Wildenhues  <[EMAIL PROTECTED]>

        * lib/glob.c: Work for C89.

diff --git a/lib/glob.c b/lib/glob.c
index 1d31d77..7e409d6 100644
--- a/lib/glob.c
+++ b/lib/glob.c
@@ -1442,8 +1442,9 @@ glob_in_dir (const char *pattern, const char *directory, 
int flags,
        memory_error:
          while (1)
            {
+             size_t i;
              struct globnames *old = names;
-             for (size_t i = 0; i < cur; ++i)
+             for (i = 0; i < cur; ++i)
                free (names->name[i]);
              names = names->next;
              /* NB: we will not leak memory here if we exit without
@@ -1467,8 +1468,9 @@ glob_in_dir (const char *pattern, const char *directory, 
int flags,
        {
          while (1)
            {
+             size_t i;
              struct globnames *old = names;
-             for (size_t i = 0; i < cur; ++i)
+             for (i = 0; i < cur; ++i)
                new_gl_pathv[pglob->gl_offs + pglob->gl_pathc++]
                  = names->name[i];
              names = names->next;


Reply via email to