X-Git-Url: https://git.dlugolecki.net.pl/?a=blobdiff_plain;f=t%2Fsrc%2Fstandalone.c;h=76d8f14bd8d4797e081a7da322018fd79ebd02f3;hb=ea81accae13a4617cc46f5256dad50e2732cc206;hp=2456a8456cde520c8c7a0255244f1d32134957ee;hpb=97e32aa949b0e3d3e9c86543fad2b63a87d844d9;p=gedcom-parse.git diff --git a/t/src/standalone.c b/t/src/standalone.c index 2456a84..76d8f14 100644 --- a/t/src/standalone.c +++ b/t/src/standalone.c @@ -67,7 +67,8 @@ void header_end(Gedcom_rec rec, Gedcom_ctxt self, Gedcom_val parsed_value) output(1, "Header end, context is %ld\n", void_ptr_to_int(self)); } -char family_xreftags[100][255]; +#define MAXFAMILY 100 +char family_xreftags[MAXFAMILY][255]; int family_nr = 1; Gedcom_ctxt family_start(Gedcom_rec rec, int level, Gedcom_val xref, char *tag, @@ -76,7 +77,9 @@ Gedcom_ctxt family_start(Gedcom_rec rec, int level, Gedcom_val xref, char *tag, { struct xref_value *xr = GEDCOM_XREF_PTR(xref); output(1, "Family start, xref is %s\n", xr->string); - strcpy(family_xreftags[family_nr], xr->string); + if (family_nr < MAXFAMILY) { + strcpy(family_xreftags[family_nr], xr->string); + } xr->object = (Gedcom_ctxt)int_to_void_ptr(family_nr); return (Gedcom_ctxt)int_to_void_ptr(family_nr++); } @@ -104,8 +107,11 @@ Gedcom_ctxt note_start(Gedcom_rec rec, int level, Gedcom_val xref, char *tag, void family_end(Gedcom_rec rec, Gedcom_ctxt self, Gedcom_val parsed_value) { - output(1, "Family end, xref is %s\n", - family_xreftags[void_ptr_to_int(self)]); + char* family_xref = ""; + int family_nr = void_ptr_to_int(self); + if (family_nr < MAXFAMILY) + family_xref = family_xreftags[void_ptr_to_int(self)]; + output(1, "Family end, xref is %s\n", family_xref); } Gedcom_ctxt submit_start(Gedcom_rec rec, int level, Gedcom_val xref, char *tag,