return 0;
}
-void free_nfs_cb_data(struct nfs_cb_data *data)
+static void free_nfs_cb_data(struct nfs_cb_data *data)
{
- if (data->saved_path != NULL) {
- free(data->saved_path);
- data->saved_path = NULL;
- }
-
if (data->continue_data != NULL) {
assert(data->free_continue_data);
data->free_continue_data(data->continue_data);
- data->continue_data = NULL;
- }
-
- if (data->fh.data.data_val != NULL) {
- free(data->fh.data.data_val);
- data->fh.data.data_val = NULL;
}
- if (data->buffer != NULL) {
- free(data->buffer);
- data->buffer = NULL;
- }
+ free(data->saved_path);
+ free(data->fh.data.data_val);
+ free(data->buffer);
free(data);
}
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);
* commands in flight to complete
*/
if (rdpe_cb_data->getattrcount > 0) {
+ nfs_free_nfsdir(nfsdir);
+ data->continue_data = NULL;
+ free_nfs_cb_data(data);
rdpe_cb_data->status = RPC_STATUS_ERROR;
free(rdpe_lookup_cb_data);
return;
}
}
-
static void nfs_opendir_cb(struct rpc_context *rpc, int status, void *command_data, void *private_data)
{
READDIRPLUS3res *res = command_data;