]> err.no Git - pkg-config/commitdiff
Don't overflow format
authorTollef Fog Heen <tfheen@err.no>
Tue, 23 Aug 2005 11:38:33 +0000 (11:38 +0000)
committerTollef Fog Heen <tfheen@err.no>
Tue, 23 Aug 2005 11:38:33 +0000 (11:38 +0000)
2005-08-23  Tollef Fog Heen  <tfheen@err.no>

* popthelp.c: char format[10] overflowed always with gcc4, so use
positional parameters instead.  Thanks to Scott James Remnant for
pointing me to that solution.  Debian #321961, Ubuntu #13950,
Freedesktop #2661

ChangeLog
popthelp.c

index 506ab99486d121978bc6e23cea4b6666376fa3d4..35fe3fbeafdab5408f509ce71a63feaf763e98ce 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2005-08-23  Tollef Fog Heen  <tfheen@err.no>
+
+       * popthelp.c: char format[10] overflowed always with gcc4, so use
+       positional parameters instead.  Thanks to Scott James Remnant for
+       pointing me to that solution.  Debian #321961, Ubuntu #13950,
+       Freedesktop #2661
+
 2005-08-22  Tollef Fog Heen  <tfheen@err.no>
 
        * check/check-cflags, check/check-define-variable,
index 265c668f15f92bc20fa899e03d222f2fb84c893b..9e1ad1eacd126b769800a651b613a6a162a0dbbd 100644 (file)
@@ -83,7 +83,6 @@ static void singleOptionHelp(FILE * f, int maxLeftCol,
     const char * help = _(opt->descrip);
     int helpLength;
     const char * ch;
-    char format[10];
     char * left = alloca(maxLeftCol + 1);
     const char * argDescrip = getArgDescrip(opt);
 
@@ -115,8 +114,8 @@ static void singleOptionHelp(FILE * f, int maxLeftCol,
        while (ch > (help + 1) && isspace(*ch)) ch--;
        ch++;
 
-       sprintf(format, "%%.%ds\n%%%ds", (int) (ch - help), indentLength);
-       fprintf(f, format, help, " ");
+       fprintf(f, "%.*s\n%*s", (int) (ch - help), help, indentLength, " ");
+
        help = ch;
        while (isspace(*help) && *help) help++;
        helpLength = strlen(help);