scanner: Only strdup interface_name after making sure it's not NULL
authorKristian Høgsberg <krh@bitplanet.net>
Sat, 19 Nov 2011 02:23:33 +0000 (21:23 -0500)
committerKristian Høgsberg <krh@bitplanet.net>
Sat, 19 Nov 2011 02:23:33 +0000 (21:23 -0500)
src/scanner.c

index 5f85396..d0b555c 100644 (file)
@@ -231,10 +231,8 @@ start_element(void *data, const char *element_name, const char **atts)
                        arg->type = FD;
                else if (strcmp(type, "new_id") == 0) {
                        arg->type = NEW_ID;
-                       arg->interface_name = strdup(interface_name);
                } else if (strcmp(type, "object") == 0) {
                        arg->type = OBJECT;
-                       arg->interface_name = strdup(interface_name);
                } else {
                        fail(ctx, "unknown type");
                }
@@ -244,6 +242,7 @@ start_element(void *data, const char *element_name, const char **atts)
                case OBJECT:
                        if (interface_name == NULL)
                                fail(ctx, "no interface name given");
+                       arg->interface_name = strdup(interface_name);
                        break;
                default:
                        if (interface_name != NULL)