if (data == NULL) {
rpc_set_error(nfs->rpc, "out of memory: failed to allocate "
"nfs_cb_data structure");
+ if (free_continue_data)
+ free_continue_data(continue_data);
return -1;
}
memset(data, 0, sizeof(struct nfs_cb_data));
ptr = strrchr(new_path, '/');
if (ptr == NULL) {
rpc_set_error(nfs->rpc, "Invalid path %s", path);
+ free(new_path);
return -1;
}
*ptr = 0;
ptr = strrchr(cb_data->path, '/');
if (ptr == NULL) {
rpc_set_error(nfs->rpc, "Invalid path %s", path);
+ free_mknod_cb_data(cb_data);
return -1;
}
*ptr = 0;
nfsdirent->name = strdup(entry->name);
if (nfsdirent->name == NULL) {
data->cb(-ENOMEM, nfs, "Failed to allocate dirent->name", data->private_data);
+ free(nfsdirent);
nfs_free_nfsdir(nfsdir);
data->continue_data = NULL;
free_nfs_cb_data(data);
chown_data->uid = uid;
chown_data->gid = gid;
-
data = malloc(sizeof(struct nfs_cb_data));
if (data == NULL) {
rpc_set_error(nfs->rpc, "out of memory. failed to allocate memory for fchown data");
+ free(chown_data);
return -1;
}
memset(data, 0, sizeof(struct nfs_cb_data));
data->cb = cb;
data->private_data = private_data;
data->continue_data = chown_data;
+ data->free_continue_data = free;
data->fh.data.data_len = nfsfh->fh.data.data_len;
data->fh.data.data_val = malloc(data->fh.data.data_len);
if (data->fh.data.data_val == NULL) {
}
memcpy(data->fh.data.data_val, nfsfh->fh.data.data_val, data->fh.data.data_len);
-
if (nfs_chown_continue_internal(nfs, data) != 0) {
free_nfs_cb_data(data);
return -1;