-rw-r--r-- | noncore/apps/zsafe/zsafe.cpp | 45 |
1 files changed, 23 insertions, 22 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 @@ -1773,6 +1773,8 @@ int ZSafe::loadInit(const char* _filename, const char *password) 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,19 +2106,4 @@ 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(); @@ -2120,6 +2111,8 @@ int ZSafe::saveInit(const char *_filename, const char *password) 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; } |