SEC_DESC* get_nt_acl_no_snum( TALLOC_CTX *ctx, const char *fname)
{
SEC_DESC *psd, *ret_sd;
- size_t sd_size;
connection_struct conn;
files_struct finfo;
struct fd_handle fh;
conn.service = -1;
if ( !(conn.mem_ctx = talloc_init( "novfs_get_nt_acl" )) ) {
- DEBUG(0,("novfs_get_nt_acl: talloc() failed!\n"));
+ DEBUG(0,("get_nt_acl_no_snum: talloc() failed!\n"));
return NULL;
}
set_conn_connectpath(&conn, path);
if (!smbd_vfs_init(&conn)) {
- DEBUG(0,("novfs_get_nt_acl: Unable to create a fake connection struct!\n"));
+ DEBUG(0,("get_nt_acl_no_snum: Unable to create a fake connection struct!\n"));
+ conn_free_internal( &conn );
return NULL;
}
pstrcpy( filename, fname );
finfo.fsp_name = filename;
- sd_size = get_nt_acl( &finfo, DACL_SECURITY_INFORMATION, &psd );
+ if (get_nt_acl( &finfo, DACL_SECURITY_INFORMATION, &psd ) == 0) {
+ DEBUG(0,("get_nt_acl_no_snum: get_nt_acl returned zero.\n"));
+ conn_free_internal( &conn );
+ return NULL;
+ }
ret_sd = dup_sec_desc( ctx, psd );