diff --git a/include/common/chunk.h b/include/common/chunk.h
index 851c7a6..b74c767 100644
--- a/include/common/chunk.h
+++ b/include/common/chunk.h
@@ -67,7 +67,7 @@
 static inline int chunk_initlen(struct chunk *chk, char *str, size_t size, int len)
 {
 
-	if (size && len > size)
+	if (len < 0 || (size && len > size))
 		return 0;
 
 	chk->str  = str;
@@ -112,7 +112,7 @@
 
 	len = strlen(str);
 
-	if (unlikely(chk->len + len >= chk->size))
+	if (unlikely(chk->len < 0 || chk->len + len >= chk->size))
 		return 0;
 
 	memcpy(chk->str + chk->len, str, len + 1);
@@ -134,7 +134,7 @@
  */
 static inline char *chunk_newstr(struct chunk *chk)
 {
-	if (chk->len + 1 >= chk->size)
+	if (chk->len < 0 || chk->len + 1 >= chk->size)
 		return NULL;
 
 	chk->str[chk->len++] = 0;
@@ -166,7 +166,7 @@
  */
 static inline char *chunk_dup(struct chunk *dst, const struct chunk *src)
 {
-	if (!dst || !src || !src->str)
+	if (!dst || !src || src->len < 0 || !src->str)
 		return NULL;
 
 	if (dst->size)
diff --git a/src/channel.c b/src/channel.c
index 755d2d9..4728986 100644
--- a/src/channel.c
+++ b/src/channel.c
@@ -77,7 +77,7 @@
 	if (len == 0)
 		return -1;
 
-	if (len > chn->buf->size) {
+	if (len < 0 || len > chn->buf->size) {
 		/* we can't write this chunk and will never be able to, because
 		 * it is larger than the buffer. This must be reported as an
 		 * error. Then we return -2 so that writers that don't care can
@@ -142,6 +142,9 @@
 	if (unlikely(channel_input_closed(chn)))
 		return -2;
 
+	if (len < 0)
+		return -3;
+
 	max = channel_recv_limit(chn);
 	if (unlikely(len > max - buffer_len(chn->buf))) {
 		/* we can't write this chunk right now because the buffer is
diff --git a/src/chunk.c b/src/chunk.c
index 1359adc..e251107 100644
--- a/src/chunk.c
+++ b/src/chunk.c
@@ -111,7 +111,7 @@
 	va_list argp;
 	int ret;
 
-	if (!chk->str || !chk->size)
+	if (chk->len < 0 || !chk->str || !chk->size)
 		return 0;
 
 	va_start(argp, fmt);
@@ -136,6 +136,9 @@
 	int olen, free;
 	char c;
 
+	if (dst->len < 0)
+		return dst->len;
+
 	olen = dst->len;
 
 	for (i = 0; i < src->len; i++) {
@@ -177,6 +180,9 @@
 	int olen, free;
 	char c;
 
+	if (dst->len < 0)
+		return dst->len;
+
 	olen = dst->len;
 
 	for (i = 0; i < src->len; i++) {
