X-Git-Url: https://git.dlugolecki.net.pl/?a=blobdiff_plain;f=gedcom%2Fgedcom_lex_common.c;h=1da7da2ee2a8f1eef5487325ba999d1702d8a36f;hb=fd6e9eab0e4489bcc7d7c0a0897218be74852641;hp=109da8a1c33035ca9d26197fca562e45267c8ba3;hpb=44bfd161d5274ff6a39f3640d745b9bbabe715ad;p=gedcom-parse.git diff --git a/gedcom/gedcom_lex_common.c b/gedcom/gedcom_lex_common.c index 109da8a..1da7da2 100644 --- a/gedcom/gedcom_lex_common.c +++ b/gedcom/gedcom_lex_common.c @@ -310,10 +310,15 @@ int test_loop(ENCODING enc, char* code) { if (compat_at) { \ int i, j; \ char *yycopy = strdup(yytext); \ - for (i = 0; i < 2; i++) \ - for (j = yyleng - 1; j >= 0; --j) \ - unput(yycopy[j]); \ - free(yycopy); \ + if (yycopy) { \ + for (i = 0; i < 2; i++) \ + for (j = yyleng - 1; j >= 0; --j) \ + unput(yycopy[j]); \ + free(yycopy); \ + } \ + else { \ + MEMORY_ERROR; \ + } \ } \ else { \ gedcom_error(_("'@' character should be written as '@@' in values")); \