srvcache->server_name = SMB_STRDUP(server);
if (!srvcache->server_name) {
- errno = ENOMEM;
- goto failed;
+ goto nomem;
}
srvcache->share_name = SMB_STRDUP(share);
if (!srvcache->share_name) {
- errno = ENOMEM;
- goto failed;
+ goto nomem;
}
srvcache->workgroup = SMB_STRDUP(workgroup);
if (!srvcache->workgroup) {
- errno = ENOMEM;
- goto failed;
+ goto nomem;
}
srvcache->username = SMB_STRDUP(username);
if (!srvcache->username) {
- errno = ENOMEM;
- goto failed;
+ goto nomem;
}
DLIST_ADD(context->internal->server_cache, srvcache);
return 0;
-failed:
+nomem:
SAFE_FREE(srvcache->server_name);
SAFE_FREE(srvcache->share_name);
SAFE_FREE(srvcache->workgroup);
SAFE_FREE(srvcache->username);
SAFE_FREE(srvcache);
+ errno = ENOMEM;
return 1;
}