possible memory leak

Leo Qiu leoxqiu at yahoo.com
Fri Jan 24 19:08:00 GMT 2003


Hi,

I seem to find some possible memory leaks in Samba
code. The patch is attached, Could you guys have a
look to check whether it is correct?

Thanks a lot.


Leo

--- samba-2.2.7a/source/lib/util.c.old	Fri Jan 24
12:06:46 2003
+++ samba-2.2.7a/source/lib/util.c	Fri Jan 24 12:07:50
2003
@@ -1284,10 +1284,13 @@ routine to free a namearray.
 
 void free_namearray(name_compare_entry *name_array)
 {
+  int i;
   if(name_array == NULL)
     return;
 
-  SAFE_FREE(name_array->name);
+  for(i=0; name_array[i].name!=NULL; i++)
+    SAFE_FREE(name_array[i].name);
+
   SAFE_FREE(name_array);
 }
 
--- samba-2.2.7a/source/smbd/posix_acls.c.old	Fri Jan
24 12:06:31 2003
+++ samba-2.2.7a/source/smbd/posix_acls.c	Fri Jan 24
12:11:49 2003
@@ -912,9 +912,10 @@ Deny entry after Allow entry.
Failing to
 						free_canon_ace_list(dir_ace);
 						return False;
 					}
-
+					SAFE_FREE(current_ace);
 					current_ace = dup_ace;
 				} else {
+					SAFE_FREE(current_ace);
 					current_ace = NULL;
 				}
 			}
@@ -949,6 +950,7 @@ Deny entry after Allow entry.
Failing to
 				print_canon_ace( current_ace, 0);
 			}
 			all_aces_are_inherit_only = False;
+			SAFE_FREE(current_ace);
 			current_ace = NULL;
 		}
 
@@ -1096,6 +1098,7 @@ static void process_deny_list(
canon_ace
 			/* Deny nothing entry - delete. */
 
 			DLIST_REMOVE(ace_list, curr_ace);
+			SAFE_FREE(curr_ace);
 			continue;
 		}
 
@@ -1141,6 +1144,7 @@ static void process_deny_list(
canon_ace
 		 */
 
 		DLIST_REMOVE(ace_list, curr_ace);
+		SAFE_FREE(curr_ace);
 	}
 
 	/* Pass 2 above - deal with deny user entries. */
@@ -2306,6 +2310,7 @@ BOOL set_nt_acl(files_struct
*fsp, uint3
 				if (conn->vfs_ops.sys_acl_delete_def_file(conn,
dos_to_unix_static(fsp->fsp_name)) == -1) {
 					DEBUG(3,("set_nt_acl:
conn->vfs_ops.sys_acl_delete_def_file failed (%s)\n",
strerror(errno)));
 					free_canon_ace_list(file_ace_list);
+					free_canon_ace_list(dir_ace_list);
 					return False;
 				}
 			}



__________________________________________________
Do you Yahoo!?
Yahoo! Mail Plus - Powerful. Affordable. Sign up now.
http://mailplus.yahoo.com



More information about the samba-technical mailing list