]> Savannah Git Hosting - gnulib.git/commitdiff
argp: Don't pass an invalid argument to dgettext().
authorBruno Haible <bruno@clisp.org>
Sat, 5 Jan 2019 16:15:29 +0000 (17:15 +0100)
committerBruno Haible <bruno@clisp.org>
Sat, 5 Jan 2019 16:15:29 +0000 (17:15 +0100)
Reported by He X <xw897002528@gmail.com>.

* lib/argp-help.c (print_header, argp_doc): Don't pass a NULL doc to
dgettext().

ChangeLog
lib/argp-help.c

index 2709cb173db6da7818a309794ab740db921bf096..d05cd8453d677497102ab1b7410fab2e58dcb831 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2019-01-05  Bruno Haible  <bruno@clisp.org>
+
+       argp: Don't pass an invalid argument to dgettext().
+       Reported by He X <xw897002528@gmail.com>.
+       * lib/argp-help.c (print_header, argp_doc): Don't pass a NULL doc to
+       dgettext().
+
 2019-01-05  Bruno Haible  <bruno@clisp.org>
 
        argp: Don't pass an invalid argument to dgettext().
index e5e97ecf6cefe0b0ef0525611c7c02f9a1aa3ab1..75abe84dfe0432aa9fc1fe62943bf6948c47e07b 100644 (file)
@@ -1021,7 +1021,7 @@ static void
 print_header (const char *str, const struct argp *argp,
               struct pentry_state *pest)
 {
-  const char *tstr = dgettext (argp->argp_domain, str);
+  const char *tstr = str ? dgettext (argp->argp_domain, str) : NULL;
   const char *fstr = filter_doc (tstr, ARGP_KEY_HELP_HEADER, argp, pest->state);
 
   if (fstr)
@@ -1479,7 +1479,7 @@ argp_doc (const struct argp *argp, const struct argp_state *state,
   void *input = 0;
   int anything = 0;
   size_t inp_text_limit = 0;
-  const char *doc = dgettext (argp->argp_domain, argp->doc);
+  const char *doc = argp->doc ? dgettext (argp->argp_domain, argp->doc) : NULL;
   const struct argp_child *child = argp->children;
 
   if (doc)