chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
remove debug printf
[elogind.git]
/
udev
/
udev-event.c
diff --git
a/udev/udev-event.c
b/udev/udev-event.c
index a41d4edb41dc5994db555b9b81d89ec24bddfe00..fcb999370974db5624dcc510c8833b83e46adb47 100644
(file)
--- a/
udev/udev-event.c
+++ b/
udev/udev-event.c
@@
-47,7
+47,12
@@
struct udev_event *udev_event_new(struct udev_device *dev)
void udev_event_unref(struct udev_event *event)
{
void udev_event_unref(struct udev_event *event)
{
+ if (event == NULL)
+ return;
udev_list_cleanup_entries(event->udev, &event->run_list);
udev_list_cleanup_entries(event->udev, &event->run_list);
+ free(event->tmp_node);
+ free(event->program_result);
+ free(event->name);
dbg(event->udev, "free event %p\n", event);
free(event);
}
dbg(event->udev, "free event %p\n", event);
free(event);
}
@@
-245,15
+250,18
@@
found:
dbg(event->udev, "substitute minor number '%s'\n", temp2);
break;
case SUBST_RESULT:
dbg(event->udev, "substitute minor number '%s'\n", temp2);
break;
case SUBST_RESULT:
- if (event->program_result
[0] == '\0'
)
+ if (event->program_result
== NULL
)
break;
/* get part part of the result string */
i = 0;
if (attr != NULL)
i = strtoul(attr, &rest, 10);
if (i > 0) {
break;
/* get part part of the result string */
i = 0;
if (attr != NULL)
i = strtoul(attr, &rest, 10);
if (i > 0) {
+ char result[UTIL_PATH_SIZE];
+
dbg(event->udev, "request part #%d of result string\n", i);
dbg(event->udev, "request part #%d of result string\n", i);
- cpos = event->program_result;
+ util_strlcpy(result, event->program_result, sizeof(result));
+ cpos = result;
while (--i) {
while (cpos[0] != '\0' && !isspace(cpos[0]))
cpos++;
while (--i) {
while (cpos[0] != '\0' && !isspace(cpos[0]))
cpos++;
@@
-338,7
+346,7
@@
found:
char filename[UTIL_PATH_SIZE];
const char *devtype;
char filename[UTIL_PATH_SIZE];
const char *devtype;
- if (event->tmp_node
[0] != '\0'
) {
+ if (event->tmp_node
!= NULL
) {
util_strlcat(string, event->tmp_node, maxsize);
dbg(event->udev, "return existing temporary node\n");
break;
util_strlcat(string, event->tmp_node, maxsize);
dbg(event->udev, "return existing temporary node\n");
break;
@@
-360,10
+368,12
@@
found:
break;
}
dbg(event->udev, "create temporary node\n");
break;
}
dbg(event->udev, "create temporary node\n");
-
snprintf(event->tmp_node, sizeof(event->tmp_node)
, "%s/.tmp-%s-%u:%u",
+
asprintf(&event->tmp_node
, "%s/.tmp-%s-%u:%u",
udev_get_dev_path(event->udev), devtype,
major(udev_device_get_devnum(dev)),
minor(udev_device_get_devnum(dev)));
udev_get_dev_path(event->udev), devtype,
major(udev_device_get_devnum(dev)),
minor(udev_device_get_devnum(dev)));
+ if (event->tmp_node == NULL)
+ break;
udev_node_mknod(dev, event->tmp_node, makedev(0, 0), 0600, 0, 0);
util_strlcat(string, event->tmp_node, maxsize);
}
udev_node_mknod(dev, event->tmp_node, makedev(0, 0), 0600, 0, 0);
util_strlcat(string, event->tmp_node, maxsize);
}
@@
-537,10
+547,11
@@
int udev_event_execute_rules(struct udev_event *event, struct udev_rules *rules)
dbg(event->udev, "device node add '%s'\n", udev_device_get_devpath(dev));
udev_rules_apply_to_event(rules, event);
dbg(event->udev, "device node add '%s'\n", udev_device_get_devpath(dev));
udev_rules_apply_to_event(rules, event);
- if (event->tmp_node
[0] != '\0'
) {
+ if (event->tmp_node
!= NULL
) {
dbg(event->udev, "removing temporary device node\n");
util_unlink_secure(event->udev, event->tmp_node);
dbg(event->udev, "removing temporary device node\n");
util_unlink_secure(event->udev, event->tmp_node);
- event->tmp_node[0] = '\0';
+ free(event->tmp_node);
+ event->tmp_node = NULL;
}
if (event->ignore_device) {
}
if (event->ignore_device) {
@@
-548,15
+559,17
@@
int udev_event_execute_rules(struct udev_event *event, struct udev_rules *rules)
goto exit;
}
goto exit;
}
- if (event->name
_ignore
) {
+ if (event->name
!= NULL && event->name[0] == '\0'
) {
info(event->udev, "device node creation supressed\n");
goto exit;
}
info(event->udev, "device node creation supressed\n");
goto exit;
}
- if (event->name
[0] == '\0'
) {
+ if (event->name
== NULL
) {
info(event->udev, "no node name set, will use kernel name '%s'\n",
udev_device_get_sysname(event->dev));
info(event->udev, "no node name set, will use kernel name '%s'\n",
udev_device_get_sysname(event->dev));
- util_strlcpy(event->name, udev_device_get_sysname(event->dev), sizeof(event->name));
+ event->name = strdup(udev_device_get_sysname(event->dev));
+ if (event->name == NULL)
+ goto exit;
}
/* set device node name */
}
/* set device node name */
@@
-594,10
+607,8
@@
int udev_event_execute_rules(struct udev_event *event, struct udev_rules *rules)
info(event->udev, "device event will be ignored\n");
goto exit;
}
info(event->udev, "device event will be ignored\n");
goto exit;
}
- if (event->name[0] == '\0') {
- info(event->udev, "device renaming supressed\n");
+ if (event->name == NULL)
goto exit;
goto exit;
- }
/* look if we want to change the name of the netif */
if (strcmp(event->name, udev_device_get_sysname(dev)) != 0) {
/* look if we want to change the name of the netif */
if (strcmp(event->name, udev_device_get_sysname(dev)) != 0) {