- if (strlen(r->dest_dir_path) == 0)
- r->cur_subvol.path = strdup(path);
- else
- r->cur_subvol.path = path_cat(r->dest_dir_path, path);
+ if (*r->dest_dir_path == 0) {
+ strncpy_null(r->cur_subvol_path, path);
+ } else {
+ ret = path_cat_out(r->cur_subvol_path, r->dest_dir_path, path);
+ if (ret < 0) {
+ error("subvol: path invalid: %s\n", path);
+ goto out;
+ }
+ }