Changeset 732bb0c in mainline for uspace/srv/vfs/vfs_ops.c
- Timestamp:
- 2009-04-14T19:08:10Z (15 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade
- Children:
- 4482bc7
- Parents:
- 47a6708
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/srv/vfs/vfs_ops.c
r47a6708 r732bb0c 805 805 void vfs_rename(ipc_callid_t rid, ipc_call_t *request) 806 806 { 807 size_t len;807 size_t olen, nlen; 808 808 ipc_callid_t callid; 809 809 int rc; 810 810 811 811 /* Retrieve the old path. */ 812 if (!ipc_data_write_receive(&callid, & len)) {812 if (!ipc_data_write_receive(&callid, &olen)) { 813 813 ipc_answer_0(callid, EINVAL); 814 814 ipc_answer_0(rid, EINVAL); 815 815 return; 816 816 } 817 char *old = malloc( len + 1);817 char *old = malloc(olen + 1); 818 818 if (!old) { 819 819 ipc_answer_0(callid, ENOMEM); … … 821 821 return; 822 822 } 823 if ((rc = ipc_data_write_finalize(callid, old, len))) {824 ipc_answer_0(rid, rc); 825 free(old); 826 return; 827 } 828 old[ len] = '\0';823 if ((rc = ipc_data_write_finalize(callid, old, olen))) { 824 ipc_answer_0(rid, rc); 825 free(old); 826 return; 827 } 828 old[olen] = '\0'; 829 829 830 830 /* Retrieve the new path. */ 831 if (!ipc_data_write_receive(&callid, & len)) {831 if (!ipc_data_write_receive(&callid, &nlen)) { 832 832 ipc_answer_0(callid, EINVAL); 833 833 ipc_answer_0(rid, EINVAL); … … 835 835 return; 836 836 } 837 char *new = malloc( len + 1);837 char *new = malloc(nlen + 1); 838 838 if (!new) { 839 839 ipc_answer_0(callid, ENOMEM); … … 842 842 return; 843 843 } 844 if ((rc = ipc_data_write_finalize(callid, new, len))) {844 if ((rc = ipc_data_write_finalize(callid, new, nlen))) { 845 845 ipc_answer_0(rid, rc); 846 846 free(old); … … 848 848 return; 849 849 } 850 new[ len] = '\0';851 852 char *oldc = canonify(old, & len);853 char *newc = canonify(new, NULL);850 new[nlen] = '\0'; 851 852 char *oldc = canonify(old, &olen); 853 char *newc = canonify(new, &nlen); 854 854 if (!oldc || !newc) { 855 855 ipc_answer_0(rid, EINVAL); … … 858 858 return; 859 859 } 860 if (!strncmp(newc, oldc, len)) { 860 oldc[olen] = '\0'; 861 newc[nlen] = '\0'; 862 if (!str_lcmp(newc, oldc, str_length(oldc))) { 861 863 /* oldc is a prefix of newc */ 862 864 ipc_answer_0(rid, EINVAL);
Note:
See TracChangeset
for help on using the changeset viewer.