From 43e64c6219cfb3cbebe699fd2bfb3f07db744180 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Axel=20D=C3=B6rfler?= Date: Tue, 1 Jul 2003 00:05:27 +0000 Subject: [PATCH] The cbug memcpy functions now accept a NULL pointer to a chain - and return B_BAD_VALUE instead of just crashing in this case. git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3776 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/kernel/core/cbuf.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/kernel/core/cbuf.c b/src/kernel/core/cbuf.c index 689225c83e..ccb8331970 100644 --- a/src/kernel/core/cbuf.c +++ b/src/kernel/core/cbuf.c @@ -335,6 +335,9 @@ cbuf_memcpy_to_chain(cbuf *chain, size_t offset, const void *_source, size_t len char *source = (char *)_source; int bufferOffset; + if (chain == NULL) + return B_BAD_VALUE; + if ((chain->flags & CBUF_FLAG_CHAIN_HEAD) == 0) { dprintf("cbuf_memcpy_to_chain: chain at %p not head\n", chain); return B_BAD_VALUE; @@ -394,6 +397,9 @@ cbuf_user_memcpy_to_chain(cbuf *chain, size_t offset, const void *_source, size_ int bufferOffset; int err; + if (chain == NULL) + return B_BAD_VALUE; + if ((chain->flags & CBUF_FLAG_CHAIN_HEAD) == 0) { dprintf("cbuf_memcpy_to_chain: chain at %p not head\n", chain); return B_BAD_VALUE; @@ -454,6 +460,9 @@ cbuf_memcpy_from_chain(void *_dest, cbuf *chain, size_t offset, size_t length) char *dest = (char *)_dest; int bufferOffset; + if (chain == NULL) + return B_BAD_VALUE; + if ((chain->flags & CBUF_FLAG_CHAIN_HEAD) == 0) { dprintf("cbuf_memcpy_from_chain: chain at %p not head\n", chain); return B_BAD_VALUE; @@ -512,6 +521,9 @@ cbuf_user_memcpy_from_chain(void *_dest, cbuf *chain, size_t offset, size_t leng int bufferOffset; int err; + if (chain == NULL) + return B_BAD_VALUE; + if ((chain->flags & CBUF_FLAG_CHAIN_HEAD) == 0) { dprintf("cbuf_memcpy_from_chain: chain at %p not head\n", chain); return B_BAD_VALUE;