diff options
Diffstat (limited to 'src/udev')
-rw-r--r-- | src/udev/udev-node.c | 3 | ||||
-rw-r--r-- | src/udev/udev-rules.c | 3 | ||||
-rw-r--r-- | src/udev/udevadm-hwdb.c | 15 | ||||
-rw-r--r-- | src/udev/udevadm-settle.c | 3 | ||||
-rw-r--r-- | src/udev/udevd.c | 6 |
5 files changed, 21 insertions, 9 deletions
diff --git a/src/udev/udev-node.c b/src/udev/udev-node.c index 7774303704..df3fac8ab6 100644 --- a/src/udev/udev-node.c +++ b/src/udev/udev-node.c @@ -282,7 +282,8 @@ static int node_fixup(struct udev_device *dev, mode_t mode, uid_t uid, gid_t gid if ((stats.st_mode & 0777) != (mode & 0777) || stats.st_uid != uid || stats.st_gid != gid) { log_debug("set permissions %s, %#o, uid=%u, gid=%u\n", devnode, mode, uid, gid); chmod(devnode, mode); - chown(devnode, uid, gid); + if (chown(devnode, uid, gid) < 0) + log_debug("Failed to change ownership of %s to uid=%u, gid=%u\n", devnode, uid, gid); } else { log_debug("preserve permissions %s, %#o, uid=%u, gid=%u\n", devnode, mode, uid, gid); } diff --git a/src/udev/udev-rules.c b/src/udev/udev-rules.c index e6f0f5da7e..a85b41185f 100644 --- a/src/udev/udev-rules.c +++ b/src/udev/udev-rules.c @@ -2552,7 +2552,8 @@ void udev_rules_apply_static_dev_perms(struct udev_rules *rules) } if ((uid != 0 && uid != stats.st_uid) || (gid != 0 && gid != stats.st_gid)) { - chown(filename, uid, gid); + if (chown(filename, uid, gid) < 0) + log_debug("Following chown failed!"); log_debug("chown '%s' %u %u\n", filename, uid, gid); } diff --git a/src/udev/udevadm-hwdb.c b/src/udev/udevadm-hwdb.c index 02d8d01f8a..e545689f3d 100644 --- a/src/udev/udevadm-hwdb.c +++ b/src/udev/udevadm-hwdb.c @@ -313,12 +313,14 @@ static int64_t trie_store_nodes(struct trie_f *trie, struct trie_node *node) { /* write node */ node_off = ftello(trie->f); - fwrite(&n, sizeof(struct trie_node_f), 1, trie->f); + if (fwrite(&n, sizeof(struct trie_node_f), 1, trie->f) != 1) + log_error("Failed to write sizeof struct trie_node_f to n in %s\n", "[udevadm-hwdb.c:trie_store_nodes]"); trie->nodes_count++; /* append children array */ if (node->children_count) { - fwrite(children, sizeof(struct trie_child_entry_f), node->children_count, trie->f); + if (fwrite(children, sizeof(struct trie_child_entry_f), node->children_count, trie->f) != node->children_count) + log_error("Failed to write children_count in %s\n", "[udevadm-hwdb.c:trie_store_nodes]"); trie->children_count += node->children_count; free(children); } @@ -330,7 +332,8 @@ static int64_t trie_store_nodes(struct trie_f *trie, struct trie_node *node) { .value_off = htole64(trie->strings_off + node->values[i].value_off), }; - fwrite(&v, sizeof(struct trie_value_entry_f), 1, trie->f); + if (fwrite(&v, sizeof(struct trie_value_entry_f), 1, trie->f) != 1) + log_error("Failed to write sizeof trie_value_entry_f to v in %s\n", "[udevadm-hwdb.c:trie_store_nodes]"); trie->values_count++; } @@ -372,14 +375,16 @@ static int trie_store(struct trie *trie, const char *filename) { h.nodes_len = htole64(pos - sizeof(struct trie_header_f)); /* write string buffer */ - fwrite(trie->strings->buf, trie->strings->len, 1, t.f); + if (fwrite(trie->strings->buf, trie->strings->len, 1, t.f) != 1) + log_error("Failed to write into trie->strings->buf in %s\n", "[udevadm-hwdb.c:trie_store]"); h.strings_len = htole64(trie->strings->len); /* write header */ size = ftello(t.f); h.file_size = htole64(size); fseeko(t.f, 0, SEEK_SET); - fwrite(&h, sizeof(struct trie_header_f), 1, t.f); + if (fwrite(&h, sizeof(struct trie_header_f), 1, t.f) != 1) + log_error("Failed to write into h in %s\n", "[udevadm-hwdb.c:trie_store]"); err = ferror(t.f); if (err) err = -errno; diff --git a/src/udev/udevadm-settle.c b/src/udev/udevadm-settle.c index c4fc4ee4e5..dd833fb6db 100644 --- a/src/udev/udevadm-settle.c +++ b/src/udev/udevadm-settle.c @@ -192,7 +192,8 @@ static int adm_settle(struct udev *udev, int argc, char *argv[]) if (poll(pfd, 1, delay) > 0 && pfd[0].revents & POLLIN) { char buf[sizeof(struct inotify_event) + PATH_MAX]; - read(pfd[0].fd, buf, sizeof(buf)); + if (read(pfd[0].fd, buf, sizeof(buf)) == -1) + log_error("Failed to read buf in %s\n", "[udevadm-settle:adm_settle]"); } } else { sleep(1); diff --git a/src/udev/udevd.c b/src/udev/udevd.c index b9922f51dd..bd650a1f6b 100644 --- a/src/udev/udevd.c +++ b/src/udev/udevd.c @@ -1157,7 +1157,11 @@ int main(int argc, char *argv[]) } /* set umask before creating any file/directory */ - chdir("/"); + if (chdir("/") == -1) { + fprintf(stderr, "Cannot chdir to /\n"); + log_error("Cannot chdir to /\n"); + goto exit; + } umask(022); mkdir("/run/udev", 0755); |