diff options
author | Christopher R. Hertel <crh@samba.org> | 1998-07-15 20:15:25 +0000 |
---|---|---|
committer | Christopher R. Hertel <crh@samba.org> | 1998-07-15 20:15:25 +0000 |
commit | 7ade0aa1d22367cb0d998d35573dc5e333a41f75 (patch) | |
tree | ba084f557c9ba0618cf90f48b60c7158bdfca84a /source3 | |
parent | 59d07445b61e26321e3a1770c13756ac5948aabb (diff) | |
download | samba-7ade0aa1d22367cb0d998d35573dc5e333a41f75.tar.gz samba-7ade0aa1d22367cb0d998d35573dc5e333a41f75.tar.bz2 samba-7ade0aa1d22367cb0d998d35573dc5e333a41f75.zip |
util.c: I've added a function called mem_dup(). Similar to strdup(),
mem_dup() allocates the required memory before copying the
source data. It returns NULL if memory could not be allcoated,
else a pointer to the newly allocated memory.
proto.h: Rebuilt to add the prototype for mem_dup().
(This used to be commit 7f7e265ab457d046441d502d4b8447bc2c966675)
Diffstat (limited to 'source3')
-rw-r--r-- | source3/include/proto.h | 3 | ||||
-rw-r--r-- | source3/lib/util.c | 13 |
2 files changed, 15 insertions, 1 deletions
diff --git a/source3/include/proto.h b/source3/include/proto.h index 6d9d083bc1..ed725b722d 100644 --- a/source3/include/proto.h +++ b/source3/include/proto.h @@ -1582,7 +1582,7 @@ char *namestr(struct nmb_name *n); struct packet_struct *copy_packet(struct packet_struct *packet); void free_packet(struct packet_struct *packet); struct packet_struct *read_packet(int fd,enum packet_type packet_type); -void make_nmb_name(struct nmb_name *n,char *name,int type,char *this_scope); +void make_nmb_name( struct nmb_name *n, char *name, int type, char *this_scope ); BOOL nmb_name_equal(struct nmb_name *n1, struct nmb_name *n2); BOOL send_packet(struct packet_struct *p); struct packet_struct *receive_packet(int fd,enum packet_type type,int t); @@ -1973,6 +1973,7 @@ BOOL is_a_socket(int fd); BOOL next_token(char **ptr,char *buff,char *sep); char **toktocliplist(int *ctok, char *sep); void *MemMove(void *dest,void *src,int size); +void *mem_dup( void *from, int size ); void array_promote(char *array,int elsize,int element); void set_socket_options(int fd, char *options); void close_sockets(void ); diff --git a/source3/lib/util.c b/source3/lib/util.c index 2bd7636fb0..905809f111 100644 --- a/source3/lib/util.c +++ b/source3/lib/util.c @@ -516,6 +516,19 @@ void *MemMove(void *dest,void *src,int size) } #endif +/* ************************************************************************* ** + * Duplicate a block of memory. + * ************************************************************************* ** + */ +void *mem_dup( void *from, int size ) + { + void *tmp; + + tmp = malloc( size ); + if( NULL != tmp ) + (void)memcpy( tmp, from, size ); + return( tmp ); + } /* mem_dup */ /**************************************************************************** prompte a dptr (to make it recently used) |