return ERANGE instead of ENOMEM, so callers can differentiate real oom
authorbenno <benno@openbsd.org>
Thu, 25 Dec 2014 22:20:52 +0000 (22:20 +0000)
committerbenno <benno@openbsd.org>
Thu, 25 Dec 2014 22:20:52 +0000 (22:20 +0000)
from this case where we have a static buffer and cant realloc.

ok phessler, claudio, reyk

lib/libutil/imsg-buffer.c

index 65413c0..318f918 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: imsg-buffer.c,v 1.4 2014/06/30 00:25:17 deraadt Exp $ */
+/*     $OpenBSD: imsg-buffer.c,v 1.5 2014/12/25 22:20:52 benno Exp $   */
 
 /*
  * Copyright (c) 2003, 2004 Henning Brauer <henning@openbsd.org>
@@ -74,7 +74,7 @@ ibuf_realloc(struct ibuf *buf, size_t len)
 
        /* on static buffers max is eq size and so the following fails */
        if (buf->wpos + len > buf->max) {
-               errno = ENOMEM;
+               errno = ERANGE;
                return (-1);
        }