NTSTATUS LwioLocalCreateDir( IN PCSTR pszPath, IN mode_t dwFileMode ) { NTSTATUS status = STATUS_SUCCESS; PSTR pszTmpPath = NULL; BAIL_ON_NULL_POINTER(pszPath); status = SMBAllocateString( pszPath, &pszTmpPath); BAIL_ON_NT_STATUS(status); status = LwioLocalCreateDirInternal( pszTmpPath, NULL, dwFileMode); BAIL_ON_NT_STATUS(status); cleanup: LWIO_SAFE_FREE_STRING(pszTmpPath); return status; error: goto cleanup; }
DWORD SMBKrb5SetDefaultCachePath( PCSTR pszCachePath, PSTR* ppszOrigCachePath ) { DWORD dwError = 0; DWORD dwMajorStatus = 0; DWORD dwMinorStatus = 0; PSTR pszOrigCachePath = NULL; // Set the default for gss dwMajorStatus = gss_krb5_ccache_name( (OM_uint32 *)&dwMinorStatus, pszCachePath, (ppszOrigCachePath) ? (const char**)&pszOrigCachePath : NULL); BAIL_ON_SEC_ERROR(dwMajorStatus); if (ppszOrigCachePath) { if (!IsNullOrEmptyString(pszOrigCachePath)) { dwError = SMBAllocateString(pszOrigCachePath, ppszOrigCachePath); BAIL_ON_LWIO_ERROR(dwError); } else { *ppszOrigCachePath = NULL; } } LWIO_LOG_DEBUG("Cache path set to [%s]", LWIO_SAFE_LOG_STRING(pszCachePath)); cleanup: return dwError; sec_error: error: if (ppszOrigCachePath) { *ppszOrigCachePath = NULL; } goto cleanup; }