Fix resource leak
authorPrzemyslaw Ciezkowski <p.ciezkowski@samsung.com>
Mon, 5 Nov 2012 15:55:23 +0000 (16:55 +0100)
committerGerrit Code Review <gerrit2@kim11>
Tue, 13 Nov 2012 04:52:54 +0000 (13:52 +0900)
[Issue#] LINUXNGWAP-506
[Bug] FILE resource resFp may not be released when encFp is not
properly initialized (fopen error, returning from function).
[Cause] N/A
[Solution] Release resFp right after it is used.
[Verification] Install tizen spec manual test case: TC21, check if
widget file "index.html" is encrypted.

Change-Id: I8a8393df17b7d49b297bf42db2c3c44a758ce2be

src/jobs/widget_install/task_encrypt_resource.cpp

index d133d83..9b0bdb4 100644 (file)
@@ -162,6 +162,7 @@ void TaskEncryptResource::EncryptFile(const std::string &fileName)
             memset(outEncBuf, 0, blockSize);
 
             fread(readBuf, sizeof(unsigned char), fileSize, resFp);
+            fclose(resFp);
 
             m_resEnc->EncryptChunk(readBuf, outEncBuf, fileSize);
 
@@ -171,8 +172,6 @@ void TaskEncryptResource::EncryptFile(const std::string &fileName)
                 return;
             }
             fwrite(outEncBuf, sizeof(unsigned char), blockSize, encFp);
-
-            fclose(resFp);
             fclose(encFp);
 
             LogDebug("Success to encrypt file");