Enlightenment CVS committal

Author  : kwo
Project : e16
Module  : e

Dir     : e16/e/src


Modified Files:
        borders.c 


Log Message:
Fix potential segv with broken themes.

===================================================================
RCS file: /cvs/e/e16/e/src/borders.c,v
retrieving revision 1.303
retrieving revision 1.304
diff -u -3 -r1.303 -r1.304
--- borders.c   30 Dec 2007 20:58:00 -0000      1.303
+++ borders.c   30 Dec 2007 21:03:57 -0000      1.304
@@ -1196,56 +1196,59 @@
        i1 = ConfigParseline1(s, s2, NULL, NULL);
        i2 = atoi(s2);
 
-       if (i2 == CONFIG_OPEN)
+       switch (i1)
          {
-            err = BorderPartLoad(fs, i1, b);
-            if (err)
-               break;
-         }
-       else
-         {
-            switch (i1)
+         case CONFIG_CLOSE:
+            goto done;
+         case CONFIG_CLASSNAME:
+         case BORDER_NAME:
+            if (BorderFind(s2))
               {
-              case CONFIG_CLOSE:
+                 SkipTillEnd(fs);
                  goto done;
-              case BORDER_INIT:
-                 break;
-              case CONFIG_CLASSNAME:
-              case BORDER_NAME:
-                 if (BorderFind(s2))
-                   {
-                      SkipTillEnd(fs);
-                      goto done;
-                   }
-                 b = BorderCreate(s2);
-                 break;
-              case BORDER_GROUP_NAME:
-                 b->group_border_name = Estrdup(s2);
-                 break;
-              case BORDER_LEFT:
-                 b->border.left = i2;
-                 break;
-              case BORDER_RIGHT:
-                 b->border.right = i2;
-                 break;
-              case BORDER_TOP:
-                 b->border.top = i2;
-                 break;
-              case BORDER_BOTTOM:
-                 b->border.bottom = i2;
-                 break;
-              case SHADEDIR:
-                 b->shadedir = i2;
-                 break;
-              case BORDER_CHANGES_SHAPE:
-                 b->changes_shape = i2;
-                 break;
-              case CONFIG_ACTIONCLASS:
-                 b->aclass = ActionclassFind(s2);
-                 break;
-              default:
-                 break;
               }
+            b = BorderCreate(s2);
+            continue;
+         }
+
+       if (!b)
+          break;
+
+       switch (i1)
+         {
+         default:
+            break;
+         case BORDER_INIT:
+            if (i2 != CONFIG_OPEN)
+               break;
+            err = BorderPartLoad(fs, i1, b);
+            if (err)
+               break;
+            break;
+         case BORDER_GROUP_NAME:
+            b->group_border_name = Estrdup(s2);
+            break;
+         case BORDER_LEFT:
+            b->border.left = i2;
+            break;
+         case BORDER_RIGHT:
+            b->border.right = i2;
+            break;
+         case BORDER_TOP:
+            b->border.top = i2;
+            break;
+         case BORDER_BOTTOM:
+            b->border.bottom = i2;
+            break;
+         case SHADEDIR:
+            b->shadedir = i2;
+            break;
+         case BORDER_CHANGES_SHAPE:
+            b->changes_shape = i2;
+            break;
+         case CONFIG_ACTIONCLASS:
+            b->aclass = ActionclassFind(s2);
+            break;
          }
      }
    err = -1;



-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to