Changes in kernel/generic/src/sysinfo/sysinfo.c [abf6c01:88e43bc] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/generic/src/sysinfo/sysinfo.c
rabf6c01 r88e43bc 204 204 205 205 *psubtree = 206 (sysinfo_item_t *) slab_alloc(sysinfo_item_cache, FRAME_ATOMIC); 207 if (!*psubtree) 208 return NULL; 206 (sysinfo_item_t *) slab_alloc(sysinfo_item_cache, 0); 207 assert(*psubtree); 209 208 210 209 /* Fill in item name up to the delimiter */ 211 210 (*psubtree)->name = str_ndup(name, i); 212 if (!(*psubtree)->name) { 213 slab_free(sysinfo_item_cache, *psubtree); 214 return NULL; 215 } 211 assert((*psubtree)->name); 216 212 217 213 /* Create subtree items */ 218 214 if (name[i] == '.') { 219 215 (*psubtree)->subtree_type = SYSINFO_SUBTREE_TABLE; 220 sysinfo_item_t *item =sysinfo_create_path(name + i + 1,216 return sysinfo_create_path(name + i + 1, 221 217 &((*psubtree)->subtree.table)); 222 if (!item) {223 free((*psubtree)->name);224 slab_free(sysinfo_item_cache, *psubtree);225 }226 return item;227 218 } 228 219 … … 280 271 281 272 sysinfo_item_t *item = 282 (sysinfo_item_t *) slab_alloc(sysinfo_item_cache, FRAME_ATOMIC); 283 if (!item) 284 return NULL; 273 (sysinfo_item_t *) slab_alloc(sysinfo_item_cache, 0); 274 assert(item); 285 275 286 276 cur->next = item; … … 288 278 /* Fill in item name up to the delimiter */ 289 279 item->name = str_ndup(name, i); 290 if (!item->name) { 291 slab_free(sysinfo_item_cache, item); 292 return NULL; 293 } 280 assert(item->name); 294 281 295 282 /* Create subtree items */ 296 283 if (name[i] == '.') { 297 284 item->subtree_type = SYSINFO_SUBTREE_TABLE; 298 sysinfo_item_t *sub = sysinfo_create_path( 299 name + i + 1, &(item->subtree.table)); 300 if (!sub) { 301 free(item->name); 302 slab_free(sysinfo_item_cache, item); 303 return NULL; 304 } 305 return sub; 285 return sysinfo_create_path(name + i + 1, 286 &(item->subtree.table)); 306 287 } 307 288 … … 337 318 item->val_type = SYSINFO_VAL_VAL; 338 319 item->val.val = val; 339 } else {340 printf("Could not set sysinfo item %s.\n", name);341 320 } 342 321 … … 371 350 item->val.data.data = data; 372 351 item->val.data.size = size; 373 } else {374 printf("Could not set sysinfo item %s.\n", name);375 352 } 376 353 … … 401 378 item->val.gen_val.fn = fn; 402 379 item->val.gen_val.data = data; 403 } else {404 printf("Could not set sysinfo item %s.\n", name);405 380 } 406 381 … … 436 411 item->val.gen_data.fn = fn; 437 412 item->val.gen_data.data = data; 438 } else {439 printf("Could not set sysinfo item %s.\n", name);440 413 } 441 414 … … 461 434 if (item != NULL) 462 435 item->val_type = SYSINFO_VAL_UNDEFINED; 463 else464 printf("Could not set sysinfo item %s.\n", name);465 436 466 437 mutex_unlock(&sysinfo_lock); … … 495 466 item->subtree.generator.fn = fn; 496 467 item->subtree.generator.data = data; 497 } else {498 printf("Could not set sysinfo item %s.\n", name);499 468 } 500 469 … … 685 654 return ret; 686 655 687 // TODO: Change this so that allocation is not needed. 688 char *path = malloc(size + 1); 689 if (!path) 690 return ret; 656 char *path = (char *) nfmalloc(size + 1); 657 assert(path); 691 658 692 659 if ((copy_from_uspace(path, ptr, size + 1) == 0) && … … 796 763 return ret; 797 764 798 // TODO: Change this so that allocation is not needed. 799 char *path = malloc(size + 1); 800 if (!path) 801 return ret; 765 char *path = (char *) nfmalloc(size + 1); 766 assert(path); 802 767 803 768 if ((copy_from_uspace(path, ptr, size + 1) == 0) &&
Note:
See TracChangeset
for help on using the changeset viewer.