commit b6e946b5046717608a103cb526fccafd2998a252 Author: Matthias Kramm Date: Thu Jul 25 19:49:07 2013 -0700 fix crashes reported by Debian Cylab Mayhem Team diff --git a/src/font2swf.c b/src/font2swf.c index 0eed8ac..2ba59bd 100644 --- a/src/font2swf.c +++ b/src/font2swf.c @@ -103,6 +103,8 @@ static void convertFont(char*infile, char*outfile) SWFFONT * font; font = swf_LoadFont(infile, config_flashtype); + if(!font) + exit(1); swf_FontCreateAlignZones(font); if(fontname) diff --git a/src/gif2swf.c b/src/gif2swf.c index 5e52ea8..fbb8473 100644 --- a/src/gif2swf.c +++ b/src/gif2swf.c @@ -257,6 +257,9 @@ TAG *MovieAddFrame(SWF * swf, TAG * t, char *sname, int id, int imgidx) memset(pal, 0, 256 * sizeof(RGBA)); img = &gft->SavedImages[imgidx].ImageDesc; + if(!img) { + exit(1); + } // Local colormap has precedence over Global colormap colormap = img->ColorMap ? img->ColorMap : gft->SColorMap; diff --git a/src/png2swf.c b/src/png2swf.c index 92a71a5..3aecfca 100644 --- a/src/png2swf.c +++ b/src/png2swf.c @@ -691,9 +691,9 @@ int args_callback_option(char *arg, char *val) } case 'm': { - char*s = strdup(val); - char*c = strchr(s, ':'); - if(!c) { + char*s = val ? strdup(val) : NULL; + char*c = s ? strchr(s, ':') : NULL; + if(!s || !c) { fprintf(stderr, "-m option requires two arguments, :\n"); exit(1); } diff --git a/src/swfrender.c b/src/swfrender.c index d988d37..8d7dcb4 100644 --- a/src/swfrender.c +++ b/src/swfrender.c @@ -48,6 +48,10 @@ int args_callback_option(char*name,char*val) printf("swfrender - part of %s %s\n", PACKAGE, VERSION); exit(0); } else if(!strcmp(name, "o")) { + if(!val) { + fprintf(stderr, "use \"-o \"\n"); + exit(1); + } outputname = strdup(val); return 1; } else if(!strcmp(name, "l")) {