From: <lu...@us...> - 2002-08-30 07:05:52
|
Update of /cvsroot/libexif/exif/exif In directory usw-pr-cvs1:/tmp/cvs-serv21558/exif Modified Files: main.c Log Message: 2002-08-30 Lutz Müller <lu...@us...> * exif/main.c: Make sure people don't try too save too much EXIF data. Index: main.c =================================================================== RCS file: /cvsroot/libexif/exif/exif/main.c,v retrieving revision 1.19 retrieving revision 1.20 diff -u -d -r1.19 -r1.20 --- main.c 6 Aug 2002 21:20:45 -0000 1.19 +++ main.c 30 Aug 2002 07:05:49 -0000 1.20 @@ -145,6 +145,8 @@ save_exif_data_to_file (ExifData *ed, const char *fname, const char *target) { JPEGData *jdata; + unsigned char *d = NULL; + unsigned int ds; /* Parse the JPEG file */ jdata = jpeg_data_new_from_file (fname); @@ -154,6 +156,18 @@ fprintf (stderr, "\n"); return (1); } + + /* Make sure the EXIF data is not too big. */ + exif_data_save_data (ed, &d, &ds); + if (ds) { + if (ds > 0xffff) { + fprintf (stderr, _("Too much EXIF data (%i bytes). " + "Only %i bytes are allowed."), ds, 0xffff); + fprintf (stderr, "\n"); + return (1); + } + free (d); + }; jpeg_data_set_exif_data (jdata, ed); |