]> git.ipfire.org Git - thirdparty/gettext.git/commitdiff
Fix freesa() argument, thus fixing a crash on SPARC64/Solaris.
authorBruno Haible <bruno@clisp.org>
Fri, 14 May 2004 19:50:34 +0000 (19:50 +0000)
committerBruno Haible <bruno@clisp.org>
Tue, 23 Jun 2009 10:11:51 +0000 (12:11 +0200)
gettext-tools/src/ChangeLog
gettext-tools/src/format-java.c

index 6b9238fea8c126ffdbfb2adb94d8b8772faffede..77bf9025dc5718308a5054e296d3ef7720f51386 100644 (file)
@@ -1,3 +1,7 @@
+2004-05-14  Bruno Haible  <bruno@clisp.org>
+
+       * format-java.c (message_format_parse): Fix argument of freesa() calls.
+
 2004-03-19  Bruno Haible  <bruno@clisp.org>
 
        * Makefile.am (install-exec-clean): Don't remove libgettextsrc.a on
index 52164c781c14410bda267aaf53b36905b3901c29..bb133399f39ea4d54c7f7fbb06ddbfbcc3dd2bd7 100644 (file)
@@ -165,6 +165,7 @@ message_format_parse (const char *format, struct spec *spec,
          const char *element_start;
          const char *element_end;
          size_t n;
+         char *element_alloced;
          char *element;
          unsigned int number;
          enum format_arg_type type;
@@ -194,7 +195,7 @@ message_format_parse (const char *format, struct spec *spec,
          element_end = format++;
 
          n = element_end - element_start;
-         element = (char *) xallocsa (n + 1);
+         element = element_alloced = (char *) xallocsa (n + 1);
          memcpy (element, element_start, n);
          element[n] = '\0';
 
@@ -202,7 +203,7 @@ message_format_parse (const char *format, struct spec *spec,
            {
              *invalid_reason =
                xasprintf (_("In the directive number %u, '{' is not followed by an argument number."), spec->directives);
-             freesa (element);
+             freesa (element_alloced);
              return false;
            }
          number = 0;
@@ -236,7 +237,7 @@ message_format_parse (const char *format, struct spec *spec,
                    {
                      *invalid_reason =
                        xasprintf (_("In the directive number %u, the substring \"%s\" is not a valid date/time style."), spec->directives, element);
-                     freesa (element);
+                     freesa (element_alloced);
                      return false;
                    }
                }
@@ -246,7 +247,7 @@ message_format_parse (const char *format, struct spec *spec,
                  element -= 4;
                  *invalid_reason =
                    xasprintf (_("In the directive number %u, \"%s\" is not followed by a comma."), spec->directives, element);
-                 freesa (element);
+                 freesa (element_alloced);
                  return false;
                }
            }
@@ -268,7 +269,7 @@ message_format_parse (const char *format, struct spec *spec,
                    {
                      *invalid_reason =
                        xasprintf (_("In the directive number %u, the substring \"%s\" is not a valid number style."), spec->directives, element);
-                     freesa (element);
+                     freesa (element_alloced);
                      return false;
                    }
                }
@@ -278,7 +279,7 @@ message_format_parse (const char *format, struct spec *spec,
                  element -= 6;
                  *invalid_reason =
                    xasprintf (_("In the directive number %u, \"%s\" is not followed by a comma."), spec->directives, element);
-                 freesa (element);
+                 freesa (element_alloced);
                  return false;
                }
            }
@@ -295,7 +296,7 @@ message_format_parse (const char *format, struct spec *spec,
                    ;
                  else
                    {
-                     freesa (element);
+                     freesa (element_alloced);
                      return false;
                    }
                }
@@ -305,7 +306,7 @@ message_format_parse (const char *format, struct spec *spec,
                  element -= 6;
                  *invalid_reason =
                    xasprintf (_("In the directive number %u, \"%s\" is not followed by a comma."), spec->directives, element);
-                 freesa (element);
+                 freesa (element_alloced);
                  return false;
                }
            }
@@ -313,10 +314,10 @@ message_format_parse (const char *format, struct spec *spec,
            {
              *invalid_reason =
                xasprintf (_("In the directive number %u, the argument number is not followed by a comma and one of \"%s\", \"%s\", \"%s\", \"%s\"."), spec->directives, "time", "date", "number", "choice");
-             freesa (element);
+             freesa (element_alloced);
              return false;
            }
-         freesa (element);
+         freesa (element_alloced);
 
          if (spec->allocated == spec->numbered_arg_count)
            {