aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/exec-cmd.c8
-rw-r--r--src/r-gpgme.c4
-rw-r--r--src/routines.c16
-rw-r--r--src/tree.c1
4 files changed, 28 insertions, 1 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) {
diff --git a/src/r-gpgme.c b/src/r-gpgme.c
index cfa2f98..4641e60 100644
--- a/src/r-gpgme.c
+++ b/src/r-gpgme.c
@@ -175,6 +175,10 @@ char *decrypt_data(const char *path)
}
data = malloc(sizeof(char) * (maxlen_pass + 1));
+ if (!data) {
+ print_error("Unable to allocate space for the decrypted data.\n");
+ goto out_release_plain;
+ }
gpgme_data_read(plain, data, maxlen_pass);
out_release_plain:
diff --git a/src/routines.c b/src/routines.c
index 2250fec..da83c38 100644
--- a/src/routines.c
+++ b/src/routines.c
@@ -99,6 +99,12 @@ char *get_pubkey()
}
pubkey = malloc(sizeof(char) * (maxlen_fingerprint + 1));
+ if (!pubkey) {
+ print_error("Unable to allocate space for the public key.\n");
+ fclose(fileGPG);
+ return NULL;
+ }
+
if(fgets(pubkey, maxlen_fingerprint + 1, fileGPG) == NULL) {
print_error("Error: %s\n", strerror(errno));
free(pubkey);
@@ -159,8 +165,12 @@ int insert_pass(const char *path, const char *password)
char *get_input(int minlen, int maxlen)
{
- char *pass = malloc(sizeof(char) * (maxlen + 1));
int len;
+ char *pass = malloc(sizeof(char) * (maxlen + 1));
+ if (!pass) {
+ print_error("Unable to allocate space for the password.\n");
+ return NULL;
+ }
if(fgets(pass, maxlen + 1, stdin) == NULL) {
print_error("Error: %s\n", strerror(errno));
@@ -189,6 +199,10 @@ char *gen_password(int length)
"0123456789"
"!@#$^&*?";
char *password = malloc(sizeof(char) * (length + 1));
+ if (!password) {
+ print_error("Unable to allocate space for the password.\n");
+ return NULL;
+ }
srand(time(NULL));
for(i = 0; i < length; i++)
diff --git a/src/tree.c b/src/tree.c
index 293a86a..632921f 100644
--- a/src/tree.c
+++ b/src/tree.c
@@ -26,6 +26,7 @@
#include "tree.h"
#include "xstd.h"
#include "easydir.h"
+#include "output.h"
#define ANSIC_RST "\x1B[0m"
#define ANSIC_BBLU "\x1B[34;1m"