本文整理汇总了C++中LwAllocateMemory函数的典型用法代码示例。如果您正苦于以下问题:C++ LwAllocateMemory函数的具体用法?C++ LwAllocateMemory怎么用?C++ LwAllocateMemory使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了LwAllocateMemory函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: LsaMarshalGroupInfo0ToGroupAddInfo
DWORD
LsaMarshalGroupInfo0ToGroupAddInfo(
HANDLE hLsa,
PLSA_GROUP_INFO_0 pGroupInfo,
PLSA_GROUP_ADD_INFO* ppAddInfo
)
{
DWORD dwError = 0;
PLSA_GROUP_ADD_INFO pAddInfo = NULL;
dwError = LwAllocateMemory(sizeof(*pAddInfo), OUT_PPVOID(&pAddInfo));
BAIL_ON_LSA_ERROR(dwError);
pAddInfo->gid = pGroupInfo->gid;
dwError = LwStrDupOrNull(pGroupInfo->pszName, &pAddInfo->pszName);
BAIL_ON_LSA_ERROR(dwError);
*ppAddInfo = pAddInfo;
cleanup:
return dwError;
error:
*ppAddInfo = NULL;
if (pAddInfo)
{
LsaFreeGroupAddInfo(pAddInfo);
}
goto cleanup;
}
开发者ID:FarazShaikh,项目名称:LikewiseSMB2,代码行数:35,代码来源:marshal.c
示例2: ADCacheDuplicateMembership
DWORD
ADCacheDuplicateMembership(
PLSA_GROUP_MEMBERSHIP* ppDest,
PLSA_GROUP_MEMBERSHIP pSrc
)
{
DWORD dwError = 0;
PLSA_GROUP_MEMBERSHIP pDest = NULL;
dwError = LwAllocateMemory(
sizeof(*pDest),
(PVOID*)&pDest);
BAIL_ON_LSA_ERROR(dwError);
dwError = ADCacheDuplicateMembershipContents(
pDest,
pSrc);
BAIL_ON_LSA_ERROR(dwError);
*ppDest = pDest;
cleanup:
return dwError;
error:
ADCacheSafeFreeGroupMembership(&pDest);
*ppDest = NULL;
goto cleanup;
}
开发者ID:borland667,项目名称:pbis,代码行数:29,代码来源:adcache.c
示例3: CreateQueryListEntry
static
DWORD
CreateQueryListEntry(
OUT PLSA_AD_QUERY_LISTS_ENTRY* ppEntry,
IN DWORD dwQueryCount,
IN PSTR* ppszQueryValues
)
{
DWORD dwError = 0;
PLSA_AD_QUERY_LISTS_ENTRY pEntry = NULL;
dwError = LwAllocateMemory(sizeof(*pEntry), (PVOID*)&pEntry);
BAIL_ON_LSA_ERROR(dwError);
pEntry->dwQueryCount = dwQueryCount;
pEntry->ppszQueryValues = ppszQueryValues;
*ppEntry = pEntry;
cleanup:
return dwError;
error:
*ppEntry = NULL;
DestroyQueryListEntry(&pEntry);
goto cleanup;
}
开发者ID:borland667,项目名称:pbis,代码行数:27,代码来源:adldap.c
示例4: LsaBuildGroupModInfo
DWORD
LsaBuildGroupModInfo(
gid_t gid,
PLSA_GROUP_MOD_INFO* ppGroupModInfo
)
{
DWORD dwError = 0;
PLSA_GROUP_MOD_INFO pGroupModInfo = NULL;
dwError = LwAllocateMemory(
sizeof(LSA_GROUP_MOD_INFO),
(PVOID*)&pGroupModInfo);
BAIL_ON_LSA_ERROR(dwError);
pGroupModInfo->gid = gid;
*ppGroupModInfo = pGroupModInfo;
cleanup:
return dwError;
error:
if (pGroupModInfo) {
LsaFreeGroupModInfo(pGroupModInfo);
}
*ppGroupModInfo = NULL;
goto cleanup;
}
开发者ID:FarazShaikh,项目名称:LikewiseSMB2,代码行数:29,代码来源:lsagroupinfo.c
示例5: LWSaveConfigSectionList
DWORD
LWSaveConfigSectionList(
PCSTR pszConfigFilePath,
PCFGSECTION pSectionList
)
{
DWORD dwError = 0;
/*PNVPAIR pNVPair = NULL;*/
FILE* fp = NULL;
PSTR pszTmpPath = NULL;
BOOLEAN bRemoveFile = FALSE;
dwError = LwAllocateMemory(strlen(pszConfigFilePath)+strlen(".macadutil")+1,
(PVOID*)&pszTmpPath);
BAIL_ON_MAC_ERROR(dwError);
sprintf(pszTmpPath, "%s.macadutil", pszConfigFilePath);
if ((fp = fopen(pszTmpPath, "w")) == NULL) {
dwError = errno;
BAIL_ON_MAC_ERROR(dwError);
}
if (fcntl(fileno(fp), F_SETFD, FD_CLOEXEC) < 0) {
dwError = errno;
BAIL_ON_MAC_ERROR(dwError);
}
bRemoveFile = TRUE;
dwError = LWSaveConfigSectionListToFile(fp, pSectionList);
BAIL_ON_MAC_ERROR(dwError);
fclose(fp); fp = NULL;
dwError = LwMoveFile(pszTmpPath, pszConfigFilePath);
BAIL_ON_MAC_ERROR(dwError);
bRemoveFile = FALSE;
cleanup:
if (bRemoveFile)
{
LwRemoveFile(pszTmpPath);
}
if (fp)
{
fclose(fp);
}
LW_SAFE_FREE_STRING(pszTmpPath);
return dwError;
error:
goto cleanup;
}
开发者ID:bhanug,项目名称:likewise-open,代码行数:60,代码来源:cfgparser.c
示例6: LsaNssPushNetgroup
static
NSS_STATUS
LsaNssPushNetgroup(
PLSA_NSS_NETGROUP_LIST* ppList,
PCSTR pszGroup
)
{
int ret = NSS_STATUS_SUCCESS;
PLSA_NSS_NETGROUP_LIST pLink = NULL;
ret = MAP_LSA_ERROR(NULL,
LwAllocateMemory(
sizeof(*pLink),
(void**) &pLink));
BAIL_ON_NSS_ERROR(ret);
ret = MAP_LSA_ERROR(NULL,
LwAllocateString(
pszGroup,
&pLink->pszGroup));
BAIL_ON_NSS_ERROR(ret);
pLink->pNext = *ppList;
*ppList = pLink;
error:
return ret;
}
开发者ID:bhanug,项目名称:likewise-open,代码行数:29,代码来源:nss-netgrp.c
示例7: LwSmQueryServiceDependencyClosure
DWORD
LwSmQueryServiceDependencyClosure(
LW_SERVICE_HANDLE hHandle,
PWSTR** pppwszServiceList
)
{
DWORD dwError = 0;
PWSTR* ppwszServiceList = NULL;
dwError = LwAllocateMemory(sizeof(*ppwszServiceList) * 1, OUT_PPVOID(&ppwszServiceList));
BAIL_ON_ERROR(dwError);
dwError = LwSmQueryServiceDependencyClosureHelper(hHandle, &ppwszServiceList);
BAIL_ON_ERROR(dwError);
*pppwszServiceList = ppwszServiceList;
cleanup:
return dwError;
error:
*pppwszServiceList = NULL;
if (ppwszServiceList)
{
LwSmFreeStringList(ppwszServiceList);
}
goto cleanup;
}
开发者ID:bhanug,项目名称:likewise-open,代码行数:32,代码来源:client.c
示例8: LsaImplConvertMachinePasswordInfoWideToMultiByte
DWORD
LsaImplConvertMachinePasswordInfoWideToMultiByte(
IN PLSA_MACHINE_PASSWORD_INFO_W pPasswordInfo,
OUT PLSA_MACHINE_PASSWORD_INFO_A* ppNewPasswordInfo
)
{
DWORD dwError = 0;
PLSA_MACHINE_PASSWORD_INFO_A pNewPasswordInfo = NULL;
dwError = LwAllocateMemory(sizeof(*pNewPasswordInfo), OUT_PPVOID(&pNewPasswordInfo));
BAIL_ON_LSA_ERROR(dwError);
dwError = LsaImplFillMachinePasswordInfoWideToMultiByte(pPasswordInfo, pNewPasswordInfo);
BAIL_ON_LSA_ERROR(dwError);
error:
if (dwError)
{
if (pNewPasswordInfo)
{
LsaImplFreeMachinePasswordInfoA(pNewPasswordInfo);
pNewPasswordInfo = NULL;
}
}
*ppNewPasswordInfo = pNewPasswordInfo;
return dwError;
}
开发者ID:FarazShaikh,项目名称:LikewiseSMB2,代码行数:29,代码来源:machinepwdinfo-impl.c
示例9: LwSmDriverConstruct
static
DWORD
LwSmDriverConstruct(
PLW_SERVICE_OBJECT pObject,
PCLW_SERVICE_INFO pInfo,
PVOID* ppData
)
{
DWORD dwError = 0;
PDRIVER_STATE pState = NULL;
dwError = LwAllocateMemory(sizeof(*pState), OUT_PPVOID(&pState));
BAIL_ON_ERROR(dwError);
dwError = LwSmCopyString(pInfo->pwszName, &pState->pName);
BAIL_ON_ERROR(dwError);
pState->State = LW_SERVICE_STATE_STOPPED;
*ppData = pState;
error:
return dwError;
}
开发者ID:twistround,项目名称:pbis,代码行数:25,代码来源:driver.c
示例10: LwSmTableGetEntryDependencyClosure
DWORD
LwSmTableGetEntryDependencyClosure(
PSM_TABLE_ENTRY pEntry,
PWSTR** pppwszServiceList
)
{
DWORD dwError = 0;
PWSTR* ppwszServiceList = NULL;
dwError = LwAllocateMemory(sizeof(*ppwszServiceList) * 1, OUT_PPVOID(&ppwszServiceList));
BAIL_ON_ERROR(dwError);
dwError = LwSmTableGetEntryDependencyClosureHelper(pEntry, &ppwszServiceList);
BAIL_ON_ERROR(dwError);
*pppwszServiceList = ppwszServiceList;
cleanup:
return dwError;
error:
*pppwszServiceList = NULL;
if (ppwszServiceList)
{
LwSmFreeStringList(ppwszServiceList);
}
goto cleanup;
}
开发者ID:twistround,项目名称:pbis,代码行数:32,代码来源:table.c
示例11: LwSmSrvAcquireServiceHandle
DWORD
LwSmSrvAcquireServiceHandle(
PCWSTR pwszName,
PLW_SERVICE_HANDLE phHandle
)
{
DWORD dwError = 0;
PSM_TABLE_ENTRY pEntry = NULL;
LW_SERVICE_HANDLE hHandle = NULL;
dwError = LwSmTableGetEntry(pwszName, &pEntry);
BAIL_ON_ERROR(dwError);
dwError = LwAllocateMemory(sizeof(*hHandle), OUT_PPVOID(&hHandle));
BAIL_ON_ERROR(dwError);
hHandle->pEntry = pEntry;
*phHandle = hHandle;
cleanup:
return dwError;
error:
*phHandle = NULL;
if (pEntry)
{
LwSmTableReleaseEntry(pEntry);
}
goto cleanup;
}
开发者ID:bhanug,项目名称:likewise-open,代码行数:34,代码来源:api.c
示例12: LsaImplDuplicateMachineAccountInfoW
DWORD
LsaImplDuplicateMachineAccountInfoW(
IN PLSA_MACHINE_ACCOUNT_INFO_W pAccountInfo,
OUT PLSA_MACHINE_ACCOUNT_INFO_W* ppNewAccountInfo
)
{
DWORD dwError = 0;
PLSA_MACHINE_ACCOUNT_INFO_W pNewAccountInfo = NULL;
dwError = LwAllocateMemory(sizeof(*pNewAccountInfo), OUT_PPVOID(&pNewAccountInfo));
BAIL_ON_LSA_ERROR(dwError);
dwError = LsaImplFillMachineAccountInfoW(pAccountInfo, pNewAccountInfo);
BAIL_ON_LSA_ERROR(dwError);
error:
if (dwError)
{
if (pNewAccountInfo)
{
LsaImplFreeMachineAccountInfoW(pNewAccountInfo);
pNewAccountInfo = NULL;
}
}
*ppNewAccountInfo = pNewAccountInfo;
return dwError;
}
开发者ID:FarazShaikh,项目名称:LikewiseSMB2,代码行数:29,代码来源:machinepwdinfo-impl.c
示例13: ADUGetGPTINIFile
static
DWORD
ADUGetGPTINIFile(
PSTR pszgPCFileSysPath,
PSTR* ppszGPTINIFilePath
)
{
DWORD dwError = MAC_AD_ERROR_SUCCESS;
char szSourceFilePath[PATH_MAX + 1];
PSTR pszDestFilePath = NULL;
PSTR pszSourcePath = NULL;
PSTR pszDomainName = NULL;
PSTR pszPolicyIdentifier = NULL;
dwError = LwAllocateMemory( PATH_MAX + 1,
(PVOID*)&pszDestFilePath);
BAIL_ON_MAC_ERROR(dwError);
dwError = ADUCrackFileSysPath(pszgPCFileSysPath,
&pszDomainName,
&pszSourcePath,
&pszPolicyIdentifier);
BAIL_ON_MAC_ERROR(dwError);
sprintf( szSourceFilePath,
"%s\\%s",
pszSourcePath,
"GPT.INI");
sprintf(pszDestFilePath,
"%s/%s_GPT.INI",
LWDS_ADMIN_CACHE_DIR,
pszPolicyIdentifier);
dwError = ADUSMBGetFile(pszDomainName,
szSourceFilePath,
pszDestFilePath);
BAIL_ON_MAC_ERROR(dwError);
*ppszGPTINIFilePath = pszDestFilePath;
pszDestFilePath = NULL;
cleanup:
LW_SAFE_FREE_STRING(pszDomainName);
LW_SAFE_FREE_STRING(pszSourcePath);
LW_SAFE_FREE_STRING(pszPolicyIdentifier);
LW_SAFE_FREE_STRING(pszDestFilePath);
return dwError;
error:
if (ppszGPTINIFilePath)
*ppszGPTINIFilePath = NULL;
goto cleanup;
}
开发者ID:FarazShaikh,项目名称:LikewiseSMB2,代码行数:58,代码来源:adinfo.c
示例14: SedEscapeLiteral
DWORD
SedEscapeLiteral(
PCSTR pInput,
PSTR* ppOutput
)
{
PSTR pOutput = NULL;
DWORD outputIndex = 0;
DWORD index = 0;
DWORD dwError = 0;
// Calculate the length first
for (index = 0; pInput[index]; index++)
{
switch (pInput[index])
{
// See the \char section of gnu sed manual
case '$':
case '*':
case '.':
case '[':
case '\\':
case '^':
outputIndex += 2;
break;
default:
outputIndex += 1;
}
}
dwError = LwAllocateMemory(
outputIndex + 1,
PPCAST(&pOutput));
BAIL_ON_CENTERIS_ERROR(dwError);
outputIndex = 0;
for (index = 0; pInput[index]; index++)
{
switch (pInput[index])
{
// See the \char section of gnu sed manual
case '$':
case '*':
case '.':
case '[':
case '\\':
case '^':
pOutput[outputIndex++] = '\\';
break;
}
pOutput[outputIndex++] = pInput[index];
}
pOutput[outputIndex++] = 0;
error:
*ppOutput = pOutput;
return dwError;
}
开发者ID:virtual-void,项目名称:pbis,代码行数:58,代码来源:djhostinfo.c
示例15: LsaNssAllocateGroupFromInfo0
DWORD
LsaNssAllocateGroupFromInfo0(
PLSA_GROUP_INFO_0 pInfo,
struct group** ppResult
)
{
DWORD dwError = LW_ERROR_SUCCESS;
// Do not free directly. Free pStartMem instead on error
struct group* pResult = NULL;
void *pStartMem = NULL;
// Do not free
PBYTE pMem = NULL;
size_t sRequiredSize = 0;
size_t sLen = 0;
sRequiredSize += sizeof(struct group);
sRequiredSize += strlen(pInfo->pszName) + 1;
sRequiredSize += 2;
dwError = LwAllocateMemory(
sRequiredSize,
&pStartMem);
BAIL_ON_LSA_ERROR(dwError);
pMem = pStartMem;
pResult = (struct group *)pMem;
pMem += sizeof(struct group);
pResult->gr_mem = NULL;
sLen = strlen(pInfo->pszName);
pResult->gr_name = (char *)pMem;
memcpy(pResult->gr_name, pInfo->pszName, sLen + 1);
pMem += sLen + 1;
sLen = 1;
pResult->gr_passwd = (char *)pMem;
memcpy(pResult->gr_passwd, "*", sLen + 1);
pMem += sLen + 1;
pResult->gr_gid = pInfo->gid;
assert(pMem == pStartMem + sRequiredSize);
*ppResult = pResult;
cleanup:
return dwError;
error:
*ppResult = NULL;
LW_SAFE_FREE_MEMORY(pStartMem);
goto cleanup;
}
开发者ID:FarazShaikh,项目名称:LikewiseSMB2,代码行数:57,代码来源:lam-group.c
示例16: LsaAllocateGroupInfo_1
static
DWORD
LsaAllocateGroupInfo_1(
PLSA_GROUP_INFO_1 *ppDstGroupInfo,
DWORD dwLevel,
PLSA_GROUP_INFO_1 pSrcGroupInfo
)
{
DWORD dwError = 0;
PLSA_GROUP_INFO_1 pGroupInfo = NULL;
dwError = LwAllocateMemory(sizeof(*pGroupInfo),
(PVOID*)&pGroupInfo);
BAIL_ON_LSA_ERROR(dwError);
if (pSrcGroupInfo) {
pGroupInfo->gid = pSrcGroupInfo->gid;
if (pSrcGroupInfo->pszName) {
dwError = LwAllocateString(pSrcGroupInfo->pszName,
&pGroupInfo->pszName);
BAIL_ON_LSA_ERROR(dwError);
}
if (pSrcGroupInfo->pszSid) {
dwError = LwAllocateString(pSrcGroupInfo->pszSid,
&pGroupInfo->pszSid);
BAIL_ON_LSA_ERROR(dwError);
}
if (pSrcGroupInfo->pszDN) {
dwError = LwAllocateString(pSrcGroupInfo->pszDN,
&pGroupInfo->pszDN);
BAIL_ON_LSA_ERROR(dwError);
}
if (pSrcGroupInfo->pszPasswd) {
dwError = LwAllocateString(pSrcGroupInfo->pszPasswd,
&pGroupInfo->pszPasswd);
BAIL_ON_LSA_ERROR(dwError);
}
}
*ppDstGroupInfo = pGroupInfo;
cleanup:
return dwError;
error:
if (pGroupInfo) {
LsaFreeGroupInfo(dwLevel, pGroupInfo);
}
*ppDstGroupInfo = NULL;
goto cleanup;
}
开发者ID:FarazShaikh,项目名称:LikewiseSMB2,代码行数:56,代码来源:lsagroupinfo.c
示例17: NtlmGetWorkstationFromResponse
DWORD
NtlmGetWorkstationFromResponse(
IN PNTLM_RESPONSE_MESSAGE_V1 pRespMsg,
IN DWORD dwRespMsgSize,
IN BOOLEAN bUnicode,
OUT PSTR* ppWorkstation
)
{
DWORD dwError = LW_ERROR_SUCCESS;
PCHAR pName = NULL;
DWORD dwNameLength = 0;
PBYTE pBuffer = NULL;
PNTLM_SEC_BUFFER pSecBuffer = &pRespMsg->Workstation;
*ppWorkstation = NULL;
if (dwRespMsgSize < sizeof(*pRespMsg))
{
dwError = ERROR_INVALID_PARAMETER;
BAIL_ON_LSA_ERROR(dwError);
}
if (LW_LTOH32(pSecBuffer->dwOffset) + LW_LTOH16(pSecBuffer->usLength) > dwRespMsgSize)
{
dwError = ERROR_INVALID_PARAMETER;
BAIL_ON_LSA_ERROR(dwError);
}
dwNameLength = LW_LTOH16(pSecBuffer->usLength);
pBuffer = LW_LTOH32(pSecBuffer->dwOffset) + (PBYTE)pRespMsg;
if (!bUnicode)
{
dwError = LwAllocateMemory(dwNameLength + 1, OUT_PPVOID(&pName));
BAIL_ON_LSA_ERROR(dwError);
memcpy(pName, pBuffer, dwNameLength);
}
else
{
dwError = NtlmGetCStringFromUnicodeBuffer(
pBuffer,
dwNameLength,
&pName);
BAIL_ON_LSA_ERROR(dwError);
}
cleanup:
*ppWorkstation = pName;
return dwError;
error:
LW_SAFE_FREE_STRING(pName);
goto cleanup;
}
开发者ID:borland667,项目名称:pbis,代码行数:55,代码来源:acceptsecctxt.c
示例18: LsaLogGetInfo
DWORD
LsaLogGetInfo(
PLSA_LOG_INFO* ppLogInfo
)
{
DWORD dwError = 0;
PLSA_LOG_INFO pLogInfo = NULL;
switch(gLogTarget)
{
case LSA_LOG_TARGET_DISABLED:
case LSA_LOG_TARGET_CONSOLE:
case LSA_LOG_TARGET_SYSLOG:
dwError = LwAllocateMemory(
sizeof(LSA_LOG_INFO),
(PVOID*)&pLogInfo);
BAIL_ON_LSA_ERROR(dwError);
pLogInfo->logTarget = gLogTarget;
pLogInfo->maxAllowedLogLevel = gLsaMaxLogLevel;
break;
case LSA_LOG_TARGET_FILE:
dwError = LsaGetFileLogInfo(
ghLog,
&pLogInfo);
BAIL_ON_LSA_ERROR(dwError);
break;
default:
dwError = LW_ERROR_INVALID_PARAMETER;
BAIL_ON_LSA_ERROR(dwError);
}
*ppLogInfo = pLogInfo;
cleanup:
return dwError;
error:
*ppLogInfo = NULL;
if (pLogInfo)
{
LsaFreeLogInfo(pLogInfo);
}
goto cleanup;
}
开发者ID:FarazShaikh,项目名称:LikewiseSMB2,代码行数:55,代码来源:lsalogger.c
示例19: LwSmTableAddEntry
DWORD
LwSmTableAddEntry(
PLW_SERVICE_INFO pInfo,
PSM_TABLE_ENTRY* ppEntry
)
{
DWORD dwError = 0;
BOOL bLocked = TRUE;
PSM_TABLE_ENTRY pEntry = NULL;
dwError = LwAllocateMemory(sizeof(*pEntry), OUT_PPVOID(&pEntry));
BAIL_ON_ERROR(dwError);
LwSmLinkInit(&pEntry->link);
LwSmLinkInit(&pEntry->waiters);
pEntry->bValid = TRUE;
dwError = LwSmCopyServiceInfo(pInfo, &pEntry->pInfo);
dwError = LwMapErrnoToLwError(pthread_mutex_init(&pEntry->lock, NULL));
BAIL_ON_ERROR(dwError);
pEntry->pLock = &pEntry->lock;
dwError = LwMapErrnoToLwError(pthread_cond_init(&pEntry->event, NULL));
BAIL_ON_ERROR(dwError);
pEntry->pEvent = &pEntry->event;
dwError = LwSmTableReconstructEntry(pEntry);
BAIL_ON_ERROR(dwError);
LOCK(bLocked, gServiceTable.pLock);
LwSmLinkInsertBefore(&gServiceTable.entries, &pEntry->link);
pEntry->dwRefCount++;
UNLOCK(bLocked, gServiceTable.pLock);
*ppEntry = pEntry;
cleanup:
return dwError;
error:
if (pEntry)
{
LwSmTableFreeEntry(pEntry);
}
goto cleanup;
}
开发者ID:twistround,项目名称:pbis,代码行数:54,代码来源:table.c
示例20: LsaNssIrsNetgroupInnetgr
static
NSS_STATUS
LsaNssIrsNetgroupInnetgr(
PLSA_NSS_NETGROUP_PRIVATE pPrivate,
PCSTR pszGroup,
PCSTR pszMatchHost,
PCSTR pszMatchUser,
PCSTR pszMatchDomain
)
{
NSS_STATUS status = NSS_STATUS_SUCCESS;
PLSA_NSS_NETGROUP_PRIVATE pInner = NULL;
PSTR pszHost = NULL;
PSTR pszUser = NULL;
PSTR pszDomain = NULL;
status = MAP_LSA_ERROR(NULL,
LwAllocateMemory(
sizeof(*pInner),
(void**) &pInner));
status = LsaNssPushNetgroup(&pInner->pExpand, pszGroup);
BAIL_ON_NSS_ERROR(status);
while (1)
{
status = LsaNssIrsNetgroupParse(
pInner,
&pszHost,
&pszUser,
&pszDomain);
BAIL_ON_NSS_ERROR(status);
if ((pszMatchHost == NULL || !strcmp(pszHost, pszMatchHost)) &&
(pszMatchUser == NULL || !strcmp(pszUser, pszMatchUser)) &&
(pszMatchDomain == NULL || !strcmp(pszDomain, pszMatchDomain)))
{
goto cleanup;
}
}
status = NSS_STATUS_NOTFOUND;
BAIL_ON_NSS_ERROR(status);
cleanup:
LsaNssIrsNetgroupDestructor(pInner);
return status;
error:
goto cleanup;
}
开发者ID:FarazShaikh,项目名称:LikewiseSMB2,代码行数:54,代码来源:netsvc-netgrp.c
注:本文中的LwAllocateMemory函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论