diff options
author | Joursoir <chat@joursoir.net> | 2022-08-31 18:20:00 +0300 |
---|---|---|
committer | Joursoir <chat@joursoir.net> | 2022-08-31 19:14:03 +0300 |
commit | e2ded11868b5dc07a3f8f1aab1e6976fb22c6bee (patch) | |
tree | 1263874d5debf94294b75ba365f1aa6068e239d6 /src/exec-cmd.c | |
parent | 471a67cd6bb133267e9e26ee0c4a6a934299253f (diff) | |
download | lock-password-e2ded11868b5dc07a3f8f1aab1e6976fb22c6bee.tar.gz lock-password-e2ded11868b5dc07a3f8f1aab1e6976fb22c6bee.tar.bz2 lock-password-e2ded11868b5dc07a3f8f1aab1e6976fb22c6bee.zip |
tree: handle a pointer returned by malloc()
It is wrong to assume that malloc() always returns allocated memory.
Unfortunately, it can return NULL.
The rest of the code that uses malloc() should be refactored. That's
the reason why we can't do it right now.
Diffstat (limited to 'src/exec-cmd.c')
-rw-r--r-- | src/exec-cmd.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/exec-cmd.c b/src/exec-cmd.c index a54e67e..90a666e 100644 --- a/src/exec-cmd.c +++ b/src/exec-cmd.c @@ -238,6 +238,12 @@ int cmd_edit(int argc, char *argv[]) } password = malloc(sizeof(char) * (maxlen_pass + 1)); + if (!password) { + print_error("Unable to allocate space for the password.\n"); + unlink(path_tmpfile); + return 1; + } + len_pass = read(fd, password, maxlen_pass); save_errno = errno; close(fd); @@ -317,6 +323,8 @@ int cmd_generate(int argc, char *argv[]) // generate password char *g_pass = gen_password(pass_length); + if (!g_pass) + return 1; result = insert_pass(path, g_pass); if(result) { |