Sven Baars : vbscript: Avoid double frees on error path (Coverity).

Alexandre Julliard julliard at winehq.org
Tue Oct 6 15:33:10 CDT 2020


Module: wine
Branch: master
Commit: da6a18ecb5e37f0397d69d0f57f23c07050a19cd
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=da6a18ecb5e37f0397d69d0f57f23c07050a19cd

Author: Sven Baars <sbaars at codeweavers.com>
Date:   Sun Oct  4 22:35:31 2020 +0200

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

Signed-off-by: Sven Baars <sbaars at codeweavers.com>
Signed-off-by: Jacek Caban <jacek at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 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 4b1c23b838..18504a43b9 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);




More information about the wine-cvs mailing list