]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/ch_malloc.c
Change overlapping `strcpy( x, y )' to `SAFEMEMCPY( x, y, strlen( y ) + 1 )'
[openldap] / servers / slapd / ch_malloc.c
index 519720e238862417b221b7fcb5b288f995e2ae0e..2c7f850520d6ce03f8406d94680e1d75f3bee38f 100644 (file)
@@ -3,6 +3,7 @@
 #include "portable.h"
 
 #include <stdio.h>
+#include <stdlib.h>
 
 #include <ac/string.h>
 #include <ac/socket.h>
@@ -17,7 +18,7 @@ ch_malloc(
        void    *new;
 
        if ( (new = (void *) malloc( size )) == NULL ) {
-               Debug( LDAP_DEBUG_ANY, "malloc of %d bytes failed\n", size, 0, 0 );
+               Debug( LDAP_DEBUG_ANY, "malloc of %lu bytes failed\n", size, 0, 0 );
                exit( 1 );
        }
 
@@ -37,7 +38,7 @@ ch_realloc(
        }
 
        if ( (new = (void *) realloc( block, size )) == NULL ) {
-               Debug( LDAP_DEBUG_ANY, "realloc of %d bytes failed\n", size, 0, 0 );
+               Debug( LDAP_DEBUG_ANY, "realloc of %lu bytes failed\n", size, 0, 0 );
                exit( 1 );
        }
 
@@ -53,10 +54,26 @@ ch_calloc(
        void    *new;
 
        if ( (new = (void *) calloc( nelem, size )) == NULL ) {
-               Debug( LDAP_DEBUG_ANY, "calloc of %d elems of %d bytes failed\n",
+               Debug( LDAP_DEBUG_ANY, "calloc of %lu elems of %lu bytes failed\n",
                  nelem, size, 0 );
                exit( 1 );
        }
 
        return( new );
 }
+
+char *
+ch_strdup(
+    const char *string
+)
+{
+       char    *new;
+
+       if ( (new = strdup( string )) == NULL ) {
+               Debug( LDAP_DEBUG_ANY, "strdup(%s) failed\n", string, 0, 0 );
+               exit( 1 );
+       }
+
+       return( new );
+}
+