File 0254-ic-Fix-memory-leak-in-oe_ei_decode_wstring.patch of Package erlang

From dcb4042890ea121e29c56eea1dd6c6bcd912e2ba Mon Sep 17 00:00:00 2001
From: Sverker Eriksson <sverker@erlang.org>
Date: Wed, 11 Jul 2018 19:54:17 +0200
Subject: [PATCH 2/3] ic: Fix memory leak in oe_ei_decode_wstring

---
 lib/ic/c_src/oe_ei_decode_wstring.c | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/lib/ic/c_src/oe_ei_decode_wstring.c b/lib/ic/c_src/oe_ei_decode_wstring.c
index 66eaf66392..d2a8270291 100644
--- a/lib/ic/c_src/oe_ei_decode_wstring.c
+++ b/lib/ic/c_src/oe_ei_decode_wstring.c
@@ -78,8 +78,10 @@ int oe_ei_decode_wstring(const char *buf, int *index, CORBA_wchar *p) {
       /* Allocate temporary string */
       tmp_space = (char*) malloc((length + 1)*sizeof(char));
 
-      if ((error_code = ei_decode_string(buf, index, tmp_space)) < 0)
-	return error_code;
+      if ((error_code = ei_decode_string(buf, index, tmp_space)) < 0) {
+          free(tmp_space);
+          return error_code;
+      }
       
       /* Assign characters to wide characters */
       for(tmp = 0; tmp < length; tmp++)
@@ -88,7 +90,7 @@ int oe_ei_decode_wstring(const char *buf, int *index, CORBA_wchar *p) {
       p[tmp] = 0; /* Wide NULL */
       
       /* Free temporary string */
-      CORBA_free(tmp_space);
+      free(tmp_space);
 
     } else { /* Allocation counting part */
       
-- 
2.16.4

openSUSE Build Service is sponsored by