Changeset 629b480 in mainline for uspace/lib/futil/src/futil.c
- Timestamp:
- 2025-04-25T20:48:07Z (5 weeks ago)
- Branches:
- master
- Children:
- 0526285, 21cd0c8, 32cb7cd, 4ae6a23, a4f8c3f, abd1eff, cbaf408, f7f60e70
- Parents:
- 4b9213d
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/futil/src/futil.c
r4b9213d r629b480 99 99 return EIO; 100 100 101 rc = vfs_lookup_open(destp, WALK_REGULAR | WALK_MAY_CREATE, MODE_WRITE, &df); 102 if (rc != EOK) 103 return EIO; 101 rc = vfs_lookup_open(destp, WALK_REGULAR | WALK_MAY_CREATE, MODE_WRITE, 102 &df); 103 if (rc != EOK) { 104 vfs_put(sf); 105 return EIO; 106 } 104 107 105 108 do { … … 152 155 de = readdir(dir); 153 156 while (de != NULL) { 154 if (asprintf(&srcp, "%s/%s", srcdir, de->d_name) < 0) 155 return ENOMEM; 156 if (asprintf(&destp, "%s/%s", destdir, de->d_name) < 0) 157 return ENOMEM; 157 if (asprintf(&srcp, "%s/%s", srcdir, de->d_name) < 0) { 158 rc = ENOMEM; 159 goto error; 160 } 161 162 if (asprintf(&destp, "%s/%s", destdir, de->d_name) < 0) { 163 rc = ENOMEM; 164 goto error; 165 } 158 166 159 167 rc = vfs_stat_path(srcp, &s); 160 168 if (rc != EOK) 161 return EIO;169 goto error; 162 170 163 171 if (s.is_file) { 164 172 rc = futil_copy_file(futil, srcp, destp); 165 if (rc != EOK) 166 return EIO; 173 if (rc != EOK) { 174 rc = EIO; 175 goto error; 176 } 167 177 } else if (s.is_directory) { 168 178 if (futil->cb != NULL && futil->cb->create_dir != NULL) … … 170 180 rc = vfs_link_path(destp, KIND_DIRECTORY, NULL); 171 181 if (rc != EOK) 172 return EIO;182 goto error; 173 183 rc = futil_rcopy_contents(futil, srcp, destp); 174 184 if (rc != EOK) 175 return EIO;185 goto error; 176 186 } else { 177 return EIO; 187 rc = EIO; 188 goto error; 178 189 } 179 190 … … 181 192 } 182 193 183 return EOK; 194 closedir(dir); 195 return EOK; 196 error: 197 closedir(dir); 198 return rc; 184 199 } 185 200
Note:
See TracChangeset
for help on using the changeset viewer.