X-Git-Url: http://git.silcnet.org/gitweb/?a=blobdiff_plain;f=lib%2Fsilcutil%2Fsilcmemory.c;h=eb246557b7b99e2c2a58af70d8d65b53bfe45198;hb=386c883d8774999c6e74d7c6c37e52e4163a4cb1;hp=e5ebae567a4d0767611fb80239735f5545a02472;hpb=318d79b391bf6288e3e28c840217a7097f3d0392;p=silc.git diff --git a/lib/silcutil/silcmemory.c b/lib/silcutil/silcmemory.c index e5ebae56..eb246557 100644 --- a/lib/silcutil/silcmemory.c +++ b/lib/silcutil/silcmemory.c @@ -1,84 +1,47 @@ /* - silcmemory.c + silcmemory.c - Author: Pekka Riikonen + Author: Pekka Riikonen - Copyright (C) 1999 - 2000 Pekka Riikonen + Copyright (C) 1999 - 2002 Pekka Riikonen This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - + the Free Software Foundation; version 2 of the License. + This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. */ -/* - * $Id$ - * $Log$ - * Revision 1.1 2000/09/13 17:45:16 priikone - * Splitted SILC core library. Core library includes now only - * SILC protocol specific stuff. New utility library includes the - * old stuff from core library that is more generic purpose stuff. - * - * Revision 1.2 2000/07/05 06:05:56 priikone - * Assert if system is out of memory. - * - * Revision 1.1.1.1 2000/06/27 11:36:55 priikone - * Imported from internal CVS/Added Log headers. - * - * - */ +/* $Id$ */ #include "silcincludes.h" void *silc_malloc(size_t size) { void *addr; -#ifdef HAVE_MLOCK - addr = malloc(size); - assert(addr != NULL); - mlock(addr, size); - return addr; -#else addr = malloc(size); assert(addr != NULL); return addr; -#endif } void *silc_calloc(size_t items, size_t size) { void *addr; -#ifdef HAVE_MLOCK addr = calloc(items, size); assert(addr != NULL); - mlock(addr, size); return addr; -#else - addr = calloc(items, size); - assert(addr != NULL); - return addr; -#endif } void *silc_realloc(void *ptr, size_t size) { void *addr; -#ifdef HAVE_MLOCK - addr = realloc(ptr, size); - assert(addr != NULL); - mlock(addr, size); - return addr; -#else addr = realloc(ptr, size); assert(addr != NULL); return addr; -#endif } void silc_free(void *ptr) @@ -86,9 +49,11 @@ void silc_free(void *ptr) free(ptr); } - - - - - - +void *silc_memdup(const void *ptr, size_t size) +{ + unsigned char *addr = silc_malloc(size + 1); + assert(addr != NULL); + memcpy((void *)addr, ptr, size); + addr[size] = '\0'; + return (void *)addr; +}