44 lines
1.3 KiB
Diff
44 lines
1.3 KiB
Diff
|
From a0cab23332a254e3500cac2a3a984472d02180e5 Mon Sep 17 00:00:00 2001
|
||
|
From: Bruno Haible <bruno@clisp.org>
|
||
|
Date: Fri, 9 Dec 2016 21:04:31 +0100
|
||
|
Subject: [PATCH] Fix crash of xgettext with --its option.
|
||
|
|
||
|
* gettext-tools/src/xgettext.c (main): Free contents of its_dirs only when it
|
||
|
was initialized. Fixes bug introduced on 2016-05-16.
|
||
|
---
|
||
|
gettext-tools/src/xgettext.c | 11 +++++++----
|
||
|
1 file changed, 7 insertions(+), 4 deletions(-)
|
||
|
|
||
|
diff --git a/gettext-tools/src/xgettext.c b/gettext-tools/src/xgettext.c
|
||
|
index f848d76d1..a80ee51ac 100644
|
||
|
--- a/gettext-tools/src/xgettext.c
|
||
|
+++ b/gettext-tools/src/xgettext.c
|
||
|
@@ -330,7 +330,7 @@ main (int argc, char *argv[])
|
||
|
bool sort_by_msgid = false;
|
||
|
bool sort_by_filepos = false;
|
||
|
char **dirs;
|
||
|
- char **its_dirs;
|
||
|
+ char **its_dirs = NULL;
|
||
|
char *explicit_its_filename = NULL;
|
||
|
const char *file_name;
|
||
|
const char *files_from = NULL;
|
||
|
@@ -1016,9 +1016,12 @@ warning: file '%s' extension '%s' is unknown; will try C"), filename, extension)
|
||
|
if (its_locating_rules)
|
||
|
locating_rule_list_free (its_locating_rules);
|
||
|
|
||
|
- for (i = 0; its_dirs[i] != NULL; i++)
|
||
|
- free (its_dirs[i]);
|
||
|
- free (its_dirs);
|
||
|
+ if (its_dirs != NULL)
|
||
|
+ {
|
||
|
+ for (i = 0; its_dirs[i] != NULL; i++)
|
||
|
+ free (its_dirs[i]);
|
||
|
+ free (its_dirs);
|
||
|
+ }
|
||
|
|
||
|
exit (EXIT_SUCCESS);
|
||
|
}
|
||
|
--
|
||
|
2.14.3
|
||
|
|