Changes in kernel/generic/src/sysinfo/sysinfo.c [abf6c01:bab75df6] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/generic/src/sysinfo/sysinfo.c
rabf6c01 rbab75df6 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 … … 313 294 } 314 295 315 unreachable(); 296 /* Unreachable */ 297 assert(false); 298 return NULL; 316 299 } 317 300 … … 337 320 item->val_type = SYSINFO_VAL_VAL; 338 321 item->val.val = val; 339 } else {340 printf("Could not set sysinfo item %s.\n", name);341 322 } 342 323 … … 371 352 item->val.data.data = data; 372 353 item->val.data.size = size; 373 } else {374 printf("Could not set sysinfo item %s.\n", name);375 354 } 376 355 … … 401 380 item->val.gen_val.fn = fn; 402 381 item->val.gen_val.data = data; 403 } else {404 printf("Could not set sysinfo item %s.\n", name);405 382 } 406 383 … … 436 413 item->val.gen_data.fn = fn; 437 414 item->val.gen_data.data = data; 438 } else {439 printf("Could not set sysinfo item %s.\n", name);440 415 } 441 416 … … 461 436 if (item != NULL) 462 437 item->val_type = SYSINFO_VAL_UNDEFINED; 463 else464 printf("Could not set sysinfo item %s.\n", name);465 438 466 439 mutex_unlock(&sysinfo_lock); … … 495 468 item->subtree.generator.fn = fn; 496 469 item->subtree.generator.data = data; 497 } else {498 printf("Could not set sysinfo item %s.\n", name);499 470 } 500 471 … … 685 656 return ret; 686 657 687 // TODO: Change this so that allocation is not needed. 688 char *path = malloc(size + 1); 689 if (!path) 690 return ret; 658 char *path = (char *) nfmalloc(size + 1); 659 assert(path); 691 660 692 661 if ((copy_from_uspace(path, ptr, size + 1) == 0) && … … 796 765 return ret; 797 766 798 // TODO: Change this so that allocation is not needed. 799 char *path = malloc(size + 1); 800 if (!path) 801 return ret; 767 char *path = (char *) nfmalloc(size + 1); 768 assert(path); 802 769 803 770 if ((copy_from_uspace(path, ptr, size + 1) == 0) &&
Note:
See TracChangeset
for help on using the changeset viewer.