Print this page
patch mdb_var_alloc

*** 36,46 **** #define NV_NAME(v) \ (((v)->v_flags & MDB_NV_EXTNAME) ? (v)->v_ename : (v)->v_lname) #define NV_SIZE(v) \ (((v)->v_flags & MDB_NV_EXTNAME) ? sizeof (mdb_var_t) : \ ! sizeof (mdb_var_t) + MDB_NV_NAMELEN - 1) #define NV_HASHSZ 211 static size_t nv_hashstring(const char *key) --- 36,46 ---- #define NV_NAME(v) \ (((v)->v_flags & MDB_NV_EXTNAME) ? (v)->v_ename : (v)->v_lname) #define NV_SIZE(v) \ (((v)->v_flags & MDB_NV_EXTNAME) ? sizeof (mdb_var_t) : \ ! sizeof (mdb_var_t) + strlen((v)->v_lname)) #define NV_HASHSZ 211 static size_t nv_hashstring(const char *key)
*** 64,87 **** static mdb_var_t * nv_var_alloc(const char *name, const mdb_nv_disc_t *disc, uintmax_t value, uint_t flags, uint_t um_flags, mdb_var_t *next) { ! size_t nbytes = (flags & MDB_NV_EXTNAME) ? sizeof (mdb_var_t) : ! (sizeof (mdb_var_t) + MDB_NV_NAMELEN - 1); ! mdb_var_t *v = mdb_alloc(nbytes, um_flags); if (v == NULL) return (NULL); if (flags & MDB_NV_EXTNAME) { v->v_ename = name; ! v->v_lname[0] = 0; } else { ! (void) strncpy(v->v_lname, name, MDB_NV_NAMELEN - 1); ! v->v_lname[MDB_NV_NAMELEN - 1] = '\0'; v->v_ename = NULL; } v->v_uvalue = value; v->v_flags = flags & ~(MDB_NV_SILENT | MDB_NV_INTERPOS); --- 64,91 ---- static mdb_var_t * nv_var_alloc(const char *name, const mdb_nv_disc_t *disc, uintmax_t value, uint_t flags, uint_t um_flags, mdb_var_t *next) { ! size_t nbytes; ! mdb_var_t *v; ! ! if (flags & MDB_NV_EXTNAME) ! nbytes = sizeof (mdb_var_t); ! else ! nbytes = sizeof (mdb_var_t) + strlen(name); ! v = mdb_alloc(nbytes, um_flags); if (v == NULL) return (NULL); if (flags & MDB_NV_EXTNAME) { v->v_ename = name; ! v->v_lname[0] = '\0'; } else { ! strcpy(v->v_lname, name); v->v_ename = NULL; } v->v_uvalue = value; v->v_flags = flags & ~(MDB_NV_SILENT | MDB_NV_INTERPOS);