diff options
Diffstat (limited to 'source/smbd/lanman.c')
-rw-r--r-- | source/smbd/lanman.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/source/smbd/lanman.c b/source/smbd/lanman.c index 5d875b6f7cd..3d8844d5be1 100644 --- a/source/smbd/lanman.c +++ b/source/smbd/lanman.c @@ -1134,10 +1134,16 @@ static int get_server_info(uint32 servertype, if (!*ptr) continue; if (count == alloced) { + struct srv_info_struct *ts; + alloced += 10; - (*servers) = (struct srv_info_struct *) - Realloc(*servers,sizeof(**servers)*alloced); - if (!(*servers)) return(0); + ts = (struct srv_info_struct *)Realloc(*servers,sizeof(**servers)*alloced); + if (!ts) { + DEBUG(0,("get_server_info: failed to enlarge servers info struct!\n")); + return(0); + } + else + *servers = ts; memset((char *)((*servers)+count),'\0',sizeof(**servers)*(alloced-count)); } s = &(*servers)[count]; |