diff options
author | Simo Sorce <idra@samba.org> | 2001-08-05 10:10:16 +0000 |
---|---|---|
committer | Simo Sorce <idra@samba.org> | 2001-08-05 10:10:16 +0000 |
commit | e485a1a4986c9328754b9a8b3054b8a6738b54f0 (patch) | |
tree | e769aabf19f50ce524b26584b1de5dee00a6ae7d | |
parent | efe1d83dbbe8492f0077b2c354eb087e53e42cd7 (diff) | |
download | samba-e485a1a4986c9328754b9a8b3054b8a6738b54f0.tar.gz samba-e485a1a4986c9328754b9a8b3054b8a6738b54f0.tar.bz2 samba-e485a1a4986c9328754b9a8b3054b8a6738b54f0.zip |
Some fixes about malloc/Realloc and mem leak
thanks to andreas moroder
(This used to be commit b29a549cdd85d42a1697041ab04f0ae4eddd23ca)
-rw-r--r-- | source3/lib/messages.c | 15 | ||||
-rw-r--r-- | source3/lib/util.c | 2 | ||||
-rw-r--r-- | source3/lib/util_file.c | 4 |
3 files changed, 15 insertions, 6 deletions
diff --git a/source3/lib/messages.c b/source3/lib/messages.c index 78cd3e22bc..54f6321041 100644 --- a/source3/lib/messages.c +++ b/source3/lib/messages.c @@ -322,12 +322,19 @@ void message_register(int msg_type, dfn = (struct dispatch_fns *)malloc(sizeof(*dfn)); - ZERO_STRUCTP(dfn); + if (dfn != NULL) { - dfn->msg_type = msg_type; - dfn->fn = fn; + ZERO_STRUCTPN(dfn); - DLIST_ADD(dispatch_fns, dfn); + dfn->msg_type = msg_type; + dfn->fn = fn; + + DLIST_ADD(dispatch_fns, dfn); + } + else { + + DEBUG(0,("message_register: Not enough memory. malloc failed!\n")); + } } /**************************************************************************** diff --git a/source3/lib/util.c b/source3/lib/util.c index 282e0e43fa..86c93e5ad0 100644 --- a/source3/lib/util.c +++ b/source3/lib/util.c @@ -524,7 +524,7 @@ SMB_OFF_T transfer_file(int infd,int outfd,SMB_OFF_T n,char *header,int headlen, } while (!buf && size>0) { - buf = (char *)Realloc(buf,size+8); + buf = (char *)malloc(buf,size+8); if (!buf) size /= 2; } diff --git a/source3/lib/util_file.c b/source3/lib/util_file.c index 01a8b1c333..a92eb15333 100644 --- a/source3/lib/util_file.c +++ b/source3/lib/util_file.c @@ -282,13 +282,15 @@ char *fgets_slash(char *s2,int maxlen,FILE *f) if (feof(f)) return(NULL); + if (maxlen <2) return(NULL); + if (!s2) { maxlen = MIN(maxlen,8); s = (char *)Realloc(s,maxlen); } - if (!s || maxlen < 2) return(NULL); + if (!s) return(NULL); *s = 0; |