[PATCH] services: handle realloc failures better (Coverity)
Marcus Meissner
marcus at jet.franken.de
Sat Jan 31 04:44:12 CST 2009
Hi,
CID 821, realloc can return NULL, this will break out
of the loop and later services_list being NULL will
be derefed.
Ciao, Marcus
---
programs/services/services.c | 6 ++++--
1 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/programs/services/services.c b/programs/services/services.c
index 003771f..9bed784 100644
--- a/programs/services/services.c
+++ b/programs/services/services.c
@@ -242,10 +242,12 @@ static void scmdatabase_autostart_services(struct scmdatabase *db)
{
if (i+1 >= size)
{
+ struct service_entry **slist_new;
size *= 2;
- services_list = HeapReAlloc(GetProcessHeap(), 0, services_list, size * sizeof(services_list[0]));
- if (!services_list)
+ slist_new = HeapReAlloc(GetProcessHeap(), 0, services_list, size * sizeof(services_list[0]));
+ if (!slist_new)
break;
+ services_list = slist_new;
}
services_list[i] = service;
service->ref_count++;
--
1.5.6
More information about the wine-patches
mailing list