commit b6e946b5046717608a103cb526fccafd2998a252
Author: Matthias Kramm <kramm@quiss.org>
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, <x>:<y>\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 <filename>\"\n");
+            exit(1);
+        }
 	outputname = strdup(val);
 	return 1;
     } else if(!strcmp(name, "l")) {
