From 5e33dc88f443af0f5b6693f13dc7ee8992ab6ca7 Mon Sep 17 00:00:00 2001 From: Adam Dickmeiss Date: Wed, 22 Feb 1995 15:24:14 +0000 Subject: [PATCH] Function iso2709_cvt makes a litte check for the format. It returns NULL if the buffer parameter can never be a MARC record. --- util/iso2709.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/util/iso2709.c b/util/iso2709.c index 1bd46e3..7fe03c1 100644 --- a/util/iso2709.c +++ b/util/iso2709.c @@ -4,9 +4,13 @@ Europagate, 1994-1995. $Log: iso2709.c,v $ - Revision 1.4 1995/02/15 17:45:44 adam - Bug fix in iso2709 module. + Revision 1.5 1995/02/22 15:24:14 adam + Function iso2709_cvt makes a litte check for the format. It returns + NULL if the buffer parameter can never be a MARC record. + * Revision 1.4 1995/02/15 17:45:44 adam + * Bug fix in iso2709 module. + * * Revision 1.3 1995/02/10 17:05:18 adam * New function iso2709_display to display MARC records in a * line-by-line format. The iso2709_cvt function no longer @@ -100,6 +104,11 @@ Iso2709Rec iso2709_cvt (const char *buf) p->base_address = atoin (buf+12, 4); strncpyx (p->user_systems, buf+17, 3); + if (p->record_length < 26) + { + free (p); + return NULL; + } p->length_data_entry = atoin (buf+20, 1); p->length_starting = atoin (buf+21, 1); p->length_implementation = atoin (buf+22, 1); -- 1.7.10.4