summaryrefslogtreecommitdiff
path: root/noncore/apps/zsafe/zsafe.cpp
Side-by-side diff
Diffstat (limited to 'noncore/apps/zsafe/zsafe.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/apps/zsafe/zsafe.cpp57
1 files changed, 29 insertions, 28 deletions
diff --git a/noncore/apps/zsafe/zsafe.cpp b/noncore/apps/zsafe/zsafe.cpp
index f70f863..9c0c6ce 100644
--- a/noncore/apps/zsafe/zsafe.cpp
+++ b/noncore/apps/zsafe/zsafe.cpp
@@ -1769,10 +1769,12 @@ int ZSafe::loadInit(const char* _filename, const char *password)
fd = fopen (_filename, "rb");
- QFileInfo f (_filename);
- load_buffer_length = f.size();
- load_buffer_length = ((load_buffer_length / 1024)+1) * 1024 * 2;
+ QFileInfo f (_filename);
+ load_buffer_length = f.size();
+ load_buffer_length = ((load_buffer_length / 1024)+1) * 1024 * 2;
- if (fd == NULL)
+ if (fd == NULL) {
+ delete krc2;
return PWERR_OPEN;
+ }
buffer = (char *)malloc(load_buffer_length);
@@ -1789,6 +1791,8 @@ int ZSafe::loadInit(const char* _filename, const char *password)
#endif
- if (size < 8)
+ if (size < 8) {
+ delete krc2;
return PWERR_DATA;
+ }
for (count = 0; count < 4; count++) {
@@ -1810,4 +1814,5 @@ int ZSafe::loadInit(const char* _filename, const char *password)
#endif
if (count2 == 0) {
+ delete krc2;
return PWERR_DATA;
}
@@ -1830,4 +1835,5 @@ int ZSafe::loadInit(const char* _filename, const char *password)
buffer[bufferIndex + 1] = '\0';
} /* while ((count = read (fileno (fd), (unsigned char *) charbuf, 8)) > 0) */
+ delete krc2;
size -= buffer[size - 1];
lastcount = 0;
@@ -2100,26 +2106,13 @@ int ZSafe::saveInit(const char *_filename, const char *password)
Krc2* krc2 = new Krc2();
- /* first we should check the permissions of the filename */
-/*
- if (QFile::exists(_filename)) {
- val = checkFile(_filename);
- if (val != PWERR_GOOD)
- return val;
- } else
- {
- val = creat (_filename, (S_IRUSR | S_IWUSR));
- if (val == -1)
- return PWERR_OPEN;
- else
- close(val);
- }
-*/
- QFileInfo f (_filename);
- save_buffer_length = f.size();
- save_buffer_length = ((save_buffer_length / 1024)+1) * 1024;
+ QFileInfo f (_filename);
+ save_buffer_length = f.size();
+ save_buffer_length = ((save_buffer_length / 1024)+1) * 1024;
fd = fopen (_filename, "wb");
- if (fd == NULL)
+ if (fd == NULL) {
+ delete krc2;
return PWERR_OPEN;
+ }
buffer = (char*)malloc(save_buffer_length);
@@ -2131,4 +2124,5 @@ int ZSafe::saveInit(const char *_filename, const char *password)
keylength = j;
krc2->rc2_expandkey (key, keylength, 128);
+ delete krc2;
/* First, we make the IV */
@@ -2189,6 +2183,12 @@ int ZSafe::saveEntry(char *entry[FIELD_SIZE])
/* reset the buffer index */
bufferIndex = 0;
- if (putc ((unsigned char) (ciphertext[count3] >> 8), fd) == EOF) return PWERR_DATA;
- if (putc ((unsigned char) (ciphertext[count3] & 0xff), fd) == EOF) return PWERR_DATA;
+ if (putc ((unsigned char) (ciphertext[count3] >> 8), fd) == EOF) {
+ delete krc2;
+ return PWERR_DATA;
+ }
+ if (putc ((unsigned char) (ciphertext[count3] & 0xff), fd) == EOF) {
+ delete krc2;
+ return PWERR_DATA;
+ }
} /*for (count3 = 0; count3 < 5; count3++)*/
} /*if (bufferIndex == 5)*/
@@ -2196,6 +2196,6 @@ int ZSafe::saveEntry(char *entry[FIELD_SIZE])
count2 += 2;
} /*while (count2 < strlen (buffer))*/
- int ret = PWERR_GOOD;
- return ret;
+ delete krc2;
+ return PWERR_GOOD;
}
@@ -2229,4 +2229,5 @@ int ZSafe::saveFinalize(void)
fclose (fd);
free(buffer);
+ delete krc2;
return retval;
}