Print this page
11927 Log, or optionally panic, on zero-length kmem allocations
Reviewed by: Dan McDonald <danmcd@joyent.com>
Reviewed by: Jason King <jason.brian.king@gmail.com>

*** 22,32 **** /* * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ ! #pragma ident "%Z%%M% %I% %E% SMI" #include <sys/promif.h> #include <sys/promimpl.h> #include <sys/prom_emul.h> #include <sys/obpdefs.h> --- 22,34 ---- /* * Copyright 2005 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ ! /* ! * Copyright (c) 2015 Joyent, Inc. All rights reserved. ! */ #include <sys/promif.h> #include <sys/promimpl.h> #include <sys/prom_emul.h> #include <sys/obpdefs.h>
*** 44,54 **** struct prom_prop *p, *q; q = kmem_zalloc(sizeof (*q), KM_SLEEP); q->pp_name = kmem_zalloc(strlen(name) + 1, KM_SLEEP); (void) strcpy(q->pp_name, name); ! q->pp_val = kmem_alloc(len, KM_SLEEP); q->pp_len = len; switch (flags) { case DDI_PROP_TYPE_INT: case DDI_PROP_TYPE_INT64: /* --- 46,56 ---- struct prom_prop *p, *q; q = kmem_zalloc(sizeof (*q), KM_SLEEP); q->pp_name = kmem_zalloc(strlen(name) + 1, KM_SLEEP); (void) strcpy(q->pp_name, name); ! q->pp_val = len > 0 ? kmem_alloc(len, KM_SLEEP) : NULL; q->pp_len = len; switch (flags) { case DDI_PROP_TYPE_INT: case DDI_PROP_TYPE_INT64: /*