config_odev*: Use XNF alloc functions
config_odev* functions are called in code-paths were we already use XNF* functions in other places, so which are not oom safe already. Besides that oom is something which should simply never happen, so aborting when it does is as good a response as any other. While switching to XNF functions also fixup an unchecked strdup case. Note the function prototypes are kept unchanged, as they are part of the server ABI. Signed-off-by: Hans de Goede <hdegoede@redhat.com> Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
This commit is contained in:
parent
e7b84ca469
commit
92ff79f1a8
|
@ -132,10 +132,7 @@ config_odev_allocate_attribute_list(void)
|
|||
{
|
||||
struct OdevAttributes *attriblist;
|
||||
|
||||
attriblist = malloc(sizeof(struct OdevAttributes));
|
||||
if (!attriblist)
|
||||
return NULL;
|
||||
|
||||
attriblist = XNFalloc(sizeof(struct OdevAttributes));
|
||||
xorg_list_init(&attriblist->list);
|
||||
return attriblist;
|
||||
}
|
||||
|
@ -168,10 +165,7 @@ config_odev_find_or_add_attribute(struct OdevAttributes *attribs, int attrib)
|
|||
if (oa)
|
||||
return oa;
|
||||
|
||||
oa = calloc(1, sizeof(struct OdevAttribute));
|
||||
if (!oa)
|
||||
return oa;
|
||||
|
||||
oa = XNFcalloc(sizeof(struct OdevAttribute));
|
||||
oa->attrib_id = attrib;
|
||||
xorg_list_append(&oa->member, &attribs->list);
|
||||
|
||||
|
@ -185,11 +179,8 @@ config_odev_add_attribute(struct OdevAttributes *attribs, int attrib,
|
|||
struct OdevAttribute *oa;
|
||||
|
||||
oa = config_odev_find_or_add_attribute(attribs, attrib);
|
||||
if (!oa)
|
||||
return FALSE;
|
||||
|
||||
free(oa->attrib_name);
|
||||
oa->attrib_name = strdup(attrib_name);
|
||||
oa->attrib_name = XNFstrdup(attrib_name);
|
||||
oa->attrib_type = ODEV_ATTRIB_STRING;
|
||||
return TRUE;
|
||||
}
|
||||
|
@ -201,9 +192,6 @@ config_odev_add_int_attribute(struct OdevAttributes *attribs, int attrib,
|
|||
struct OdevAttribute *oa;
|
||||
|
||||
oa = config_odev_find_or_add_attribute(attribs, attrib);
|
||||
if (!oa)
|
||||
return FALSE;
|
||||
|
||||
oa->attrib_value = attrib_value;
|
||||
oa->attrib_type = ODEV_ATTRIB_INT;
|
||||
return TRUE;
|
||||
|
|
|
@ -54,11 +54,12 @@ xf86_add_platform_device(struct OdevAttributes *attribs, Bool unowned);
|
|||
extern int
|
||||
xf86_remove_platform_device(int dev_index);
|
||||
extern Bool
|
||||
xf86_get_platform_device_unowned(int index);
|
||||
/* Note starting with xserver 1.16 these 2 functions never fail */
|
||||
extern Bool
|
||||
xf86_add_platform_device_attrib(int index, int attrib_id, char *attrib_str);
|
||||
extern Bool
|
||||
xf86_add_platform_device_int_attrib(int index, int attrib_id, int attrib_value);
|
||||
extern Bool
|
||||
xf86_get_platform_device_unowned(int index);
|
||||
|
||||
extern int
|
||||
xf86platformAddDevice(int index);
|
||||
|
|
|
@ -48,12 +48,14 @@ struct OdevAttributes {
|
|||
struct xorg_list list;
|
||||
};
|
||||
|
||||
/* Note starting with xserver 1.16 this function never fails */
|
||||
struct OdevAttributes *
|
||||
config_odev_allocate_attribute_list(void);
|
||||
|
||||
void
|
||||
config_odev_free_attribute_list(struct OdevAttributes *attribs);
|
||||
|
||||
/* Note starting with xserver 1.16 this function never fails */
|
||||
Bool
|
||||
config_odev_add_attribute(struct OdevAttributes *attribs, int attrib,
|
||||
const char *attrib_name);
|
||||
|
@ -61,6 +63,7 @@ config_odev_add_attribute(struct OdevAttributes *attribs, int attrib,
|
|||
char *
|
||||
config_odev_get_attribute(struct OdevAttributes *attribs, int attrib_id);
|
||||
|
||||
/* Note starting with xserver 1.16 this function never fails */
|
||||
Bool
|
||||
config_odev_add_int_attribute(struct OdevAttributes *attribs, int attrib,
|
||||
int attrib_value);
|
||||
|
|
Loading…
Reference in New Issue
Block a user