chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
udev: fix two trivial memleaks in error path
[elogind.git]
/
src
/
udev
/
collect
/
collect.c
diff --git
a/src/udev/collect/collect.c
b/src/udev/collect/collect.c
index 3c46e40de11cb84de379957b5163d981aaefa5f8..1346f27f91be55190f80ee6e5a0308eb47314082 100644
(file)
--- a/
src/udev/collect/collect.c
+++ b/
src/udev/collect/collect.c
@@
-35,8
+35,8
@@
#include "libudev-private.h"
#include "macro.h"
#include "libudev-private.h"
#include "macro.h"
-#define BUFSIZE
16
-#define UDEV_ALARM_TIMEOUT
180
+#define BUFSIZE 16
+#define UDEV_ALARM_TIMEOUT 180
enum collect_state {
STATE_NONE,
enum collect_state {
STATE_NONE,
@@
-139,12
+139,12
@@
static int checkout(int fd)
restart:
len = bufsize >> 1;
restart:
len = bufsize >> 1;
- buf = calloc(1,bufsize + 1);
- if (!buf) {
- fprintf(stderr, "Out of memory.\n");
+ buf = malloc(bufsize + 1);
+ if (!buf)
return log_oom();
return log_oom();
- }
memset(buf, ' ', bufsize);
memset(buf, ' ', bufsize);
+ buf[bufsize] = '\0';
+
ptr = buf + len;
while ((read(fd, buf + len, len)) > 0) {
while (ptr && *ptr) {
ptr = buf + len;
while ((read(fd, buf + len, len)) > 0) {
while (ptr && *ptr) {
@@
-213,7
+213,7
@@
static void invite(char *us)
udev_list_node_foreach(him_node, &bunch) {
struct _mate *him = node_to_mate(him_node);
udev_list_node_foreach(him_node, &bunch) {
struct _mate *him = node_to_mate(him_node);
- if (
!strcmp
(him->name, us)) {
+ if (
streq
(him->name, us)) {
him->state = STATE_CONFIRMED;
who = him;
}
him->state = STATE_CONFIRMED;
who = him;
}
@@
-241,7
+241,7
@@
static void reject(char *us)
udev_list_node_foreach(him_node, &bunch) {
struct _mate *him = node_to_mate(him_node);
udev_list_node_foreach(him_node, &bunch) {
struct _mate *him = node_to_mate(him_node);
- if (
!strcmp
(him->name, us)) {
+ if (
streq
(him->name, us)) {
him->state = STATE_NONE;
who = him;
}
him->state = STATE_NONE;
who = him;
}
@@
-414,7
+414,7
@@
int main(int argc, char **argv)
if (debug)
fprintf(stderr, "Using checkpoint '%s'\n", checkpoint);
if (debug)
fprintf(stderr, "Using checkpoint '%s'\n", checkpoint);
-
util_
strscpyl(tmpdir, sizeof(tmpdir), "/run/udev/collect", NULL);
+ strscpyl(tmpdir, sizeof(tmpdir), "/run/udev/collect", NULL);
fd = prepare(tmpdir, checkpoint);
if (fd < 0) {
ret = 3;
fd = prepare(tmpdir, checkpoint);
if (fd < 0) {
ret = 3;
@@
-434,7
+434,7
@@
int main(int argc, char **argv)
udev_list_node_foreach(him_node, &bunch) {
struct _mate *him = node_to_mate(him_node);
udev_list_node_foreach(him_node, &bunch) {
struct _mate *him = node_to_mate(him_node);
- if (
!strcmp
(him->name, argv[i]))
+ if (
streq
(him->name, argv[i]))
who = him;
}
if (!who) {
who = him;
}
if (!who) {
@@
-442,19
+442,19
@@
int main(int argc, char **argv)
if (debug)
fprintf(stderr, "ID %s: not in database\n", argv[i]);
if (debug)
fprintf(stderr, "ID %s: not in database\n", argv[i]);
- him =
malloc(sizeof (struct _mate)
);
+ him =
new(struct _mate, 1
);
if (!him) {
ret = ENOMEM;
goto out;
}
if (!him) {
ret = ENOMEM;
goto out;
}
- him->name =
malloc(strlen(argv[i]) + 1
);
+ him->name =
strdup(argv[i]
);
if (!him->name) {
if (!him->name) {
+ free(him);
ret = ENOMEM;
goto out;
}
ret = ENOMEM;
goto out;
}
- strcpy(him->name, argv[i]);
him->state = STATE_NONE;
udev_list_node_append(&him->node, &bunch);
} else {
him->state = STATE_NONE;
udev_list_node_append(&him->node, &bunch);
} else {