Fixed a segfault when a map can't be loaded
authormartin-s <martin-s@ffa7fe5e-494d-0410-b361-a75ebd5db220>
Sun, 4 Nov 2007 17:33:30 +0000 (17:33 +0000)
committermartin-s <martin-s@ffa7fe5e-494d-0410-b361-a75ebd5db220>
Sun, 4 Nov 2007 17:33:30 +0000 (17:33 +0000)
git-svn-id: https://navit.svn.sourceforge.net/svnroot/navit/trunk@513 ffa7fe5e-494d-0410-b361-a75ebd5db220

navit/src/data/binfile/binfile.c
navit/src/map.c

index 5a7edf6..435e037 100644 (file)
@@ -319,6 +319,11 @@ map_new_binfile(struct map_methods *meth, struct attr **attrs)
        m->filename=g_strdup(wexp_data[0]);
        dbg(0,"file_create %s\n", m->filename);
        m->fi=file_create(m->filename);
+       if (! m->fi) {
+               dbg(0,"Failed to load %s\n", m->filename);
+               g_free(m);
+               return NULL;
+       }
        file_wordexp_destroy(wexp);
        magic=(int *)(m->fi->begin);
        if (*magic == 0x04034b50) {
index facf6da..4888597 100644 (file)
@@ -41,6 +41,10 @@ map_new(const char *type, struct attr **attrs)
        if (data) 
                m->filename=g_strdup(data->u.str);
        m->priv=maptype_new(&m->meth, attrs);
+       if (! m->priv) {
+               g_free(m);
+               m=NULL;
+       }
        return m;
 }