[PATCH] cabinet: fixed free_decompression_temps/_mem , handle NULL (Coverity)

Marcus Meissner marcus at jet.franken.de
Sun Oct 18 14:31:59 CDT 2009


Hi,

Coverity spots that fol could be NULL in bail_and_fail. Also the
free_decompression_mem does not use the fol parameter as input,
just as function local variable.

Ciao, Marcus
---
 dlls/cabinet/fdi.c |    9 +++++----
 1 files changed, 5 insertions(+), 4 deletions(-)

diff --git a/dlls/cabinet/fdi.c b/dlls/cabinet/fdi.c
index 8132818..00d970f 100644
--- a/dlls/cabinet/fdi.c
+++ b/dlls/cabinet/fdi.c
@@ -2279,9 +2279,10 @@ static void free_decompression_temps(HFDI hfdi, const struct fdi_folder *fol,
   }
 }
 
-static void free_decompression_mem(HFDI hfdi, struct fdi_folder *fol,
+static void free_decompression_mem(HFDI hfdi, 
   fdi_decomp_state *decomp_state, struct fdi_file *file)
 {
+  struct fdi_folder *fol;
   while (decomp_state) {
     fdi_decomp_state *prev_fds;
 
@@ -2896,17 +2897,17 @@ BOOL __cdecl FDICopy(
   }
 
   free_decompression_temps(hfdi, fol, decomp_state);
-  free_decompression_mem(hfdi, fol, decomp_state, file);
+  free_decompression_mem(hfdi, decomp_state, file);
  
   return TRUE;
 
   bail_and_fail: /* here we free ram before error returns */
 
-  free_decompression_temps(hfdi, fol, decomp_state);
+  if (fol) free_decompression_temps(hfdi, fol, decomp_state);
 
   if (filehf) PFDI_CLOSE(hfdi, filehf);
 
-  free_decompression_mem(hfdi, fol, decomp_state, file);
+  free_decompression_mem(hfdi, decomp_state, file);
 
   return FALSE;
 }
-- 
1.5.6



More information about the wine-patches mailing list