=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/tmux/xmalloc.c,v retrieving revision 1.4 retrieving revision 1.5 diff -c -r1.4 -r1.5 *** src/usr.bin/tmux/xmalloc.c 2012/07/10 11:53:01 1.4 --- src/usr.bin/tmux/xmalloc.c 2014/10/08 17:35:58 1.5 *************** *** 1,4 **** ! /* $OpenBSD: xmalloc.c,v 1.4 2012/07/10 11:53:01 nicm Exp $ */ /* * Copyright (c) 2004 Nicholas Marriott --- 1,4 ---- ! /* $OpenBSD: xmalloc.c,v 1.5 2014/10/08 17:35:58 nicm Exp $ */ /* * Copyright (c) 2004 Nicholas Marriott *************** *** 68,75 **** } void * ! xrealloc(void *oldptr, size_t nmemb, size_t size) { size_t newsize = nmemb * size; void *newptr; --- 68,88 ---- } void * ! xrealloc(void *oldptr, size_t newsize) { + void *newptr; + + if (newsize == 0) + fatalx("zero size"); + if ((newptr = realloc(oldptr, newsize)) == NULL) + fatal("xrealloc failed"); + + return (newptr); + } + + void * + xreallocarray(void *oldptr, size_t nmemb, size_t size) + { size_t newsize = nmemb * size; void *newptr; *************** *** 78,84 **** if (SIZE_MAX / nmemb < size) fatalx("nmemb * size > SIZE_MAX"); if ((newptr = realloc(oldptr, newsize)) == NULL) ! fatal("xrealloc failed"); return (newptr); } --- 91,97 ---- if (SIZE_MAX / nmemb < size) fatalx("nmemb * size > SIZE_MAX"); if ((newptr = realloc(oldptr, newsize)) == NULL) ! fatal("xreallocarray failed"); return (newptr); }