summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorxhe <xw897002528@gmail.com>2018-12-04 00:26:01 +0800
committerrofl0r <retnyg@gmx.net>2019-01-16 02:38:18 +0000
commit1274271a37914875fe4f4ca41d63ed17746c0adf (patch)
tree714dd5724a5d9c3ab7fa53a55c745449135c1faa
parent5606beeb455961ca1ce5f89595cb738f71d4d253 (diff)
downloadgettext-tiny-1274271a37914875fe4f4ca41d63ed17746c0adf.tar.gz
msgmerge: give enough space for escape()
escape will need up to two times larger space.
-rw-r--r--src/msgmerge.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/msgmerge.c b/src/msgmerge.c
index e2be067..39e3b88 100644
--- a/src/msgmerge.c
+++ b/src/msgmerge.c
@@ -100,6 +100,7 @@ int process(struct fiLes *files, int update, int backup) {
char line[8192], conv[32768], *lb;
files->stage = ps_size;
+ files->len = 0;
poparser_init(p, conv, sizeof(conv), process_line_callback, files);
while((lb = fgets(line, sizeof(line), files->po))) {
if ((t = poparser_feed_line(p, lb, strlen(line))) != po_success)
@@ -109,6 +110,7 @@ int process(struct fiLes *files, int update, int backup) {
free(files->buf);
files->stage = ps_parse;
+ files->len *= 2;
files->buf = (char*)malloc(files->len);
fseek(files->po, 0, SEEK_SET);