opkg: prevent segfault if option is not found
authorticktock35 <ticktock35@e8e0d7a0-c8d9-11dd-a880-a1081c7ac358>
Mon, 15 Dec 2008 05:13:40 +0000 (05:13 +0000)
committerticktock35 <ticktock35@e8e0d7a0-c8d9-11dd-a880-a1081c7ac358>
Mon, 15 Dec 2008 05:13:40 +0000 (05:13 +0000)
git-svn-id: http://opkg.googlecode.com/svn/trunk@93 e8e0d7a0-c8d9-11dd-a880-a1081c7ac358

libopkg/opkg.c

index a749bf96dccc9799cd9256179b2d2505cacc7b5f..b94ad55aad440fad0f73f7417420f2f65d051da4 100644 (file)
@@ -295,7 +295,7 @@ opkg_get_option (opkg_t *opkg, char *option, void **value)
 void
 opkg_set_option (opkg_t *opkg, char *option, void *value)
 {
-  int i = 0;
+  int i = 0, found = 0;
   opkg_option_t *options;
 
   opkg_assert (opkg != NULL);
@@ -311,11 +311,18 @@ opkg_set_option (opkg_t *opkg, char *option, void *value)
   {
     if (strcmp (options[i].name, option) == 0)
     {
+      found = 1;
       break;
     }
     i++;
   }
 
+  if (!found)
+  {
+    /* XXX: Warning: Option not found */
+    return;
+  }
+
   /* set the option */
   switch (options[i].type)
   {