Rev 4586 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 4586 | Rev 4608 | ||
---|---|---|---|
Line 437... | Line 437... | ||
437 | fs_node_t *fn = ops->node_get(dev_handle, index); |
437 | fs_node_t *fn = ops->node_get(dev_handle, index); |
438 | 438 | ||
439 | ipc_callid_t callid; |
439 | ipc_callid_t callid; |
440 | size_t size; |
440 | size_t size; |
441 | if (!ipc_data_read_receive(&callid, &size) || |
441 | if (!ipc_data_read_receive(&callid, &size) || |
442 | size < sizeof(struct stat)) { |
442 | size != sizeof(struct stat)) { |
443 | ipc_answer_0(callid, EINVAL); |
443 | ipc_answer_0(callid, EINVAL); |
444 | ipc_answer_0(rid, EINVAL); |
444 | ipc_answer_0(rid, EINVAL); |
445 | return; |
445 | return; |
446 | } |
446 | } |
447 | 447 | ||
448 | struct stat *stat = malloc(sizeof(struct stat)); |
- | |
449 | if (!stat) { |
448 | struct stat stat; |
450 | ipc_answer_0(callid, ENOMEM); |
- | |
451 | ipc_answer_0(rid, ENOMEM); |
- | |
452 | return; |
- | |
453 | } |
- | |
454 | memset(stat, 0, sizeof(struct stat)); |
449 | memset(&stat, 0, sizeof(struct stat)); |
455 | 450 | ||
456 | stat->fs_handle = fs_handle; |
451 | stat.fs_handle = fs_handle; |
457 | stat->dev_handle = dev_handle; |
452 | stat.dev_handle = dev_handle; |
458 | stat->index = index; |
453 | stat.index = index; |
459 | stat->lnkcnt = ops->lnkcnt_get(fn); |
454 | stat.lnkcnt = ops->lnkcnt_get(fn); |
460 | stat->is_file = ops->is_file(fn); |
455 | stat.is_file = ops->is_file(fn); |
461 | stat->size = ops->size_get(fn); |
456 | stat.size = ops->size_get(fn); |
462 | 457 | ||
463 | ipc_data_read_finalize(callid, stat, sizeof(struct stat)); |
458 | ipc_data_read_finalize(callid, &stat, sizeof(struct stat)); |
464 | ipc_answer_0(rid, EOK); |
459 | ipc_answer_0(rid, EOK); |
465 | - | ||
466 | free(stat); |
- | |
467 | } |
460 | } |
468 | 461 | ||
469 | /** Open VFS triplet. |
462 | /** Open VFS triplet. |
470 | * |
463 | * |
471 | * @param ops libfs operations structure with function pointers to |
464 | * @param ops libfs operations structure with function pointers to |