[PATCH] vbscript: Avoid double frees on error path (Coverity).

Sven Baars sbaars at codeweavers.com
Sun Oct 4 15:35:31 CDT 2020


Signed-off-by: Sven Baars <sbaars at codeweavers.com>
---
 dlls/vbscript/global.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/dlls/vbscript/global.c b/dlls/vbscript/global.c
index 4b1c23b838c..18504a43b9a 100644
--- a/dlls/vbscript/global.c
+++ b/dlls/vbscript/global.c
@@ -2423,7 +2423,6 @@ static HRESULT Global_Split(BuiltinDisp *This, VARIANT *args, unsigned args_cnt,
     }
     hres = SafeArrayAccessData(sa, (void**)&data);
     if(FAILED(hres)) {
-        SafeArrayDestroy(sa);
         goto error;
     }
 
@@ -2440,7 +2439,6 @@ static HRESULT Global_Split(BuiltinDisp *This, VARIANT *args, unsigned args_cnt,
         hres = VariantCopyInd(data+i, &var);
         if(FAILED(hres)) {
             SafeArrayUnaccessData(sa);
-            SafeArrayDestroy(sa);
             goto error;
         }
         start = indices[i]+delimiterlen;
@@ -2452,7 +2450,7 @@ error:
         V_VT(res) = VT_ARRAY|VT_VARIANT;
         V_ARRAY(res) = sa;
     }else {
-        if (sa) SafeArrayDestroy(sa);
+        SafeArrayDestroy(sa);
     }
 
     heap_free(indices);
-- 
2.25.1




More information about the wine-devel mailing list