diff options
| author | Daniel Golle | 2024-03-30 13:07:29 +0000 |
|---|---|---|
| committer | Daniel Golle | 2024-07-01 17:13:59 +0000 |
| commit | 1e411a58f52ea49e5cb4ef4a067ecdab8befd55c (patch) | |
| tree | aad6814c17746a7b3266b99cd63caf41798502f2 | |
| parent | 946552a7b598a0b88db6101e864679554ec4f221 (diff) | |
| download | procd-1e411a58f52ea49e5cb4ef4a067ecdab8befd55c.tar.gz | |
utils: get_cmdline_val: add missing error check
Add check to prevent read() in case open() has failed.
Coverity CID: 1595922: Error handling issues (NEGATIVE_RETURNS)
Fixes: 6f52ef3 ("get_cmdline_val: search for entire name, not just suffix")
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
| -rw-r--r-- | utils/utils.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/utils/utils.c b/utils/utils.c index e5b1297..aa37c86 100644 --- a/utils/utils.c +++ b/utils/utils.c @@ -167,7 +167,12 @@ char *get_cmdline_val_offset(const char *name, char *out, int len, int offset) { char line[CMDLINE_SIZE + 1], *c, *sptr; int i, fd = open("/proc/cmdline", O_RDONLY); - ssize_t r = read(fd, line, sizeof(line) - 1); + ssize_t r; + + if (fd < 0) + return NULL; + + r = read(fd, line, sizeof(line) - 1); close(fd); if (r <= 0) |