[PATCH 1/3] config_odev_add*_attribute: Don't add the attribute to the list twice

Hans de Goede hdegoede at redhat.com
Mon Mar 3 08:25:58 PST 2014


Don't do the xorg_list_append a 2nd time when updating existing attributes.

Signed-off-by: Hans de Goede <hdegoede at redhat.com>
---
 config/config.c | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

diff --git a/config/config.c b/config/config.c
index 7971b87..28dac86 100644
--- a/config/config.c
+++ b/config/config.c
@@ -166,8 +166,11 @@ config_odev_add_attribute(struct OdevAttributes *attribs, int attrib,
     struct OdevAttribute *oa;
 
     oa = config_odev_find_attribute(attribs, attrib);
-    if (!oa)
+    if (!oa) {
         oa = calloc(1, sizeof(struct OdevAttribute));
+        if (oa)
+            xorg_list_append(&oa->member, &attribs->list);
+    }
     if (!oa)
         return FALSE;
 
@@ -175,7 +178,6 @@ config_odev_add_attribute(struct OdevAttributes *attribs, int attrib,
     free(oa->attrib_name);
     oa->attrib_name = strdup(attrib_name);
     oa->attrib_type = ODEV_ATTRIB_STRING;
-    xorg_list_append(&oa->member, &attribs->list);
     return TRUE;
 }
 
@@ -186,15 +188,17 @@ config_odev_add_int_attribute(struct OdevAttributes *attribs, int attrib,
     struct OdevAttribute *oa;
 
     oa = config_odev_find_attribute(attribs, attrib);
-    if (!oa)
+    if (!oa) {
         oa = calloc(1, sizeof(struct OdevAttribute));
+        if (oa)
+            xorg_list_append(&oa->member, &attribs->list);
+    }
     if (!oa)
         return FALSE;
 
     oa->attrib_id = attrib;
     oa->attrib_value = attrib_value;
     oa->attrib_type = ODEV_ATTRIB_INT;
-    xorg_list_append(&oa->member, &attribs->list);
     return TRUE;
 }
 
-- 
1.9.0



More information about the xorg-devel mailing list