changeset 40083:05c92cba4eaa

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().
author Bruno Haible <bruno@clisp.org>
date Sat, 05 Jan 2019 17:15:29 +0100
parents 6b4f59f81014
children 649498a95a11
files ChangeLog lib/argp-help.c
diffstat 2 files changed, 9 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Sat Jan 05 17:00:53 2019 +0100
+++ b/ChangeLog	Sat Jan 05 17:15:29 2019 +0100
@@ -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().
--- a/lib/argp-help.c	Sat Jan 05 17:00:53 2019 +0100
+++ b/lib/argp-help.c	Sat Jan 05 17:15:29 2019 +0100
@@ -1021,7 +1021,7 @@
 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 @@
   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)