Fix SVACE defects - part 2
authorOleg Kopysov <o.kopysov@samsung.com>
Fri, 19 May 2017 19:10:49 +0000 (22:10 +0300)
committerDmitriy Zhuravlev <d.zhuravlev@samsung.com>
Sat, 20 May 2017 12:14:25 +0000 (12:14 +0000)
File: resource/csdk/security/provisioning/sample/certgenerator.cpp
-- file handle loss
-- potential buffer overrun by sprintf call

Change-Id: I12217045b42683b4eac3af03b76c4c189f7a00db
Signed-off-by: Oleksandr Moliavko <o.moliavko@samsung.com>
Signed-off-by: Oleg Kopysov <o.kopysov@samsung.com>
Reviewed-on: https://gerrit.iotivity.org/gerrit/20141
Tested-by: jenkins-iotivity <jenkins@iotivity.org>
Reviewed-by: dongik Lee <dongik.lee@samsung.com>
Reviewed-by: Dmitriy Zhuravlev <d.zhuravlev@samsung.com>
resource/csdk/security/provisioning/sample/certgenerator.cpp

index 7d97f15..4245b17 100644 (file)
@@ -359,14 +359,13 @@ static void DoGenCertificate(CertType certType)
         goto exit;
     }
 
-    sprintf(filename, "%s.crt", subjKeyPairName);
+    snprintf(filename, sizeof(filename), "%s.crt", subjKeyPairName);
     f = fopen(filename, "wb");
     if (NULL == f)
     {
         printf("Failed to open certificate file for writing!\n");
         goto exit;
     }
-    
     bytesProcessed = fwrite(certificate, 1, certificateLen, f);
     if (bytesProcessed < certificateLen)
     {
@@ -374,17 +373,17 @@ static void DoGenCertificate(CertType certType)
         goto exit;
     }
 
-    if (0 != fclose(f))
-    {
-        printf("Warning: failed to close certificate file\n");
-        goto exit;
-    }
-
-    f = NULL;
-
     printf("Wrote certificate file.\n");
 
 exit:
+    if (NULL != f)
+    {
+        if (0 != fclose(f))
+        {
+            printf("Warning: failed to fclose\n");
+        }
+        f = NULL;
+    }
 
     OICFree(serial);
     OICFree(certificate);