Author: abrander
Date: 2010-05-28 12:25:12 +0200 (Fri, 28 May 2010)
New Revision: 3392

Modified:
   trunk/src/rs-cache.c
Log:
Check some fucking return values.

Modified: trunk/src/rs-cache.c
===================================================================
--- trunk/src/rs-cache.c        2010-05-28 09:36:08 UTC (rev 3391)
+++ trunk/src/rs-cache.c        2010-05-28 10:25:12 UTC (rev 3392)
@@ -350,7 +350,7 @@
                if ((!xmlStrcmp(cur->name, BAD_CAST "settings")))
                {
                        val = xmlGetProp(cur, BAD_CAST "id");
-                       id = atoi((gchar *) val);
+                       id = (val) ? atoi((gchar *) val) : 0;
                        xmlFree(val);
                        if (id>2) id=0;
                        if (id<0) id=0;
@@ -362,45 +362,61 @@
                else if ((!xmlStrcmp(cur->name, BAD_CAST "priority")))
                {
                        val = xmlNodeListGetString(doc, cur->xmlChildrenNode, 
1);
-                       photo->priority = atoi((gchar *) val);
-                       xmlFree(val);
+                       if (val)
+                       {
+                               photo->priority = atoi((gchar *) val);
+                               xmlFree(val);
+                       }
                }
                else if ((!xmlStrcmp(cur->name, BAD_CAST "orientation")))
                {
                        val = xmlNodeListGetString(doc, cur->xmlChildrenNode, 
1);
-                       photo->orientation = atoi((gchar *) val);
-                       xmlFree(val);
+                       if (val)
+                       {
+                               photo->orientation = atoi((gchar *) val);
+                               xmlFree(val);
+                       }
                }
                else if ((!xmlStrcmp(cur->name, BAD_CAST "angle")))
                {
                        val = xmlNodeListGetString(doc, cur->xmlChildrenNode, 
1);
-                       photo->angle = rs_atof((gchar *) val);
-                       xmlFree(val);
+                       if (val)
+                       {
+                               photo->angle = rs_atof((gchar *) val);
+                               xmlFree(val);
+                       }
                }
                else if ((!xmlStrcmp(cur->name, BAD_CAST "exported")))
                {
                        val = xmlNodeListGetString(doc, cur->xmlChildrenNode, 
1);
-                       if (g_ascii_strcasecmp((gchar *) val, "yes")==0)
-                               photo->exported = TRUE;
-                       xmlFree(val);
+                       if (val)
+                       {
+                               if (g_ascii_strcasecmp((gchar *) val, "yes")==0)
+                                       photo->exported = TRUE;
+                               xmlFree(val);
+                       }
                }
                else if ((!xmlStrcmp(cur->name, BAD_CAST "dcp-profile")))
                {
                        val = xmlNodeListGetString(doc, cur->xmlChildrenNode, 
1);
-                       RSProfileFactory *factory = 
rs_profile_factory_new_default();
-                       RSDcpFile *dcp = 
rs_profile_factory_find_from_id(factory, (gchar *) val);
-                       if (dcp)
-                               rs_photo_set_dcp_profile(photo, dcp);
-                       xmlFree(val);
+                       if (val)
+                       {
+                               RSProfileFactory *factory = 
rs_profile_factory_new_default();
+                               RSDcpFile *dcp = 
rs_profile_factory_find_from_id(factory, (gchar *) val);
+                               if (dcp)
+                                       rs_photo_set_dcp_profile(photo, dcp);
+                               xmlFree(val);
+                       }
                }
                else if ((!xmlStrcmp(cur->name, BAD_CAST "crop")))
                {
                        RS_RECT *crop = g_new0(RS_RECT, 1);
-                       gchar **vals;
+                       gchar **vals = NULL;
 
                        val = xmlNodeListGetString(doc, cur->xmlChildrenNode, 
1);
-                       vals = g_strsplit((gchar *)val, " ", 4);
-                       if (vals[0])
+                       if (val)
+                               vals = g_strsplit((gchar *)val, " ", 4);
+                       if (val && vals[0])
                        {
                                crop->x1 = atoi((gchar *) vals[0]);
                                if (vals[1])


_______________________________________________
Rawstudio-commit mailing list
[email protected]
http://rawstudio.org/cgi-bin/mailman/listinfo/rawstudio-commit

Reply via email to