Fix sample code
authorGreg Zaverucha <gregz@microsoft.com>
Wed, 28 Jun 2017 00:38:25 +0000 (17:38 -0700)
committerRichard Levitte <levitte@openssl.org>
Wed, 28 Jun 2017 22:38:26 +0000 (00:38 +0200)
Fix memory leak in sample encryption code and check return value of
fopen.

CLA: trivial

Signed-off-by: Greg Zaverucha <gregz@microsoft.com>
Reviewed-by: Paul Dale <paul.dale@oracle.com>
Reviewed-by: Richard Levitte <levitte@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/3790)

doc/man3/EVP_EncryptInit.pod

index 46e6a57..66e1ffb 100644 (file)
@@ -552,6 +552,7 @@ Encrypt a string using IDEA:
 
      if (!EVP_EncryptUpdate(ctx, outbuf, &outlen, intext, strlen(intext))) {
          /* Error */
+         EVP_CIPHER_CTX_free(ctx);
          return 0;
      }
      /*
@@ -560,6 +561,7 @@ Encrypt a string using IDEA:
       */
      if (!EVP_EncryptFinal_ex(ctx, outbuf + outlen, &tmplen)) {
          /* Error */
+         EVP_CIPHER_CTX_free(ctx);
          return 0;
      }
      outlen += tmplen;
@@ -571,6 +573,10 @@ Encrypt a string using IDEA:
       * NULs.
       */
      out = fopen(outfile, "wb");
+     if (out == NULL) {
+         /* Error */
+         return 0;
+     }
      fwrite(outbuf, 1, outlen, out);
      fclose(out);
      return 1;