crypto: fix incorrect usage of realloc.
authorZhang Zhaolong <zhangzl2013@126.com>
Wed, 11 Mar 2015 04:37:35 +0000 (12:37 +0800)
committerZhang Zhaolong <zhangzl2013@126.com>
Wed, 11 Mar 2015 04:37:35 +0000 (12:37 +0800)
Signed-off-by: Zhang Zhaolong <zhangzl2013@126.com>
libfreerdp/crypto/tls.c

index 87f3005..4822552 100644 (file)
@@ -1001,8 +1001,15 @@ int tls_verify_certificate(rdpTls* tls, CryptoCert cert, char* hostname, int por
 
                while (offset >= length)
                {
-                       length *= 2;
-                       pemCert = (BYTE*) realloc(pemCert, length + 1);
+                       int new_len;
+                       BYTE *new_cert;
+
+                       new_len = length * 2;
+                       new_cert = (BYTE*) realloc(pemCert, new_len + 1);
+                       if (!new_cert)
+                               return -1;
+                       length = new_len;
+                       pemCert = new_cert;
 
                        status = BIO_read(bio, &pemCert[offset], length);