[ADVAPI32]

- Roel Messiant: Fix short-circuit evaluation.
See issue #5677 for more details.

svn path=/trunk/; revision=49216
This commit is contained in:
Aleksey Bragin 2010-10-21 20:30:37 +00:00
parent 824ec6597d
commit 12cded29f1

View file

@ -103,16 +103,22 @@ static DWORD registry_read_credential(HKEY hkey, PCREDENTIALW credential,
credential->TargetName = (LPWSTR)buffer; credential->TargetName = (LPWSTR)buffer;
ret = RegQueryValueExW(hkey, NULL, 0, &type, (LPVOID)credential->TargetName, ret = RegQueryValueExW(hkey, NULL, 0, &type, (LPVOID)credential->TargetName,
&count); &count);
if (ret != ERROR_SUCCESS || type != REG_SZ) return ret; if (ret != ERROR_SUCCESS)
return ret;
else if (type != REG_SZ)
return ERROR_REGISTRY_CORRUPT;
buffer += count; buffer += count;
} }
ret = RegQueryValueExW(hkey, wszCommentValue, 0, &type, NULL, &count); ret = RegQueryValueExW(hkey, wszCommentValue, 0, &type, NULL, &count);
if (ret != ERROR_FILE_NOT_FOUND && ret != ERROR_SUCCESS) if (ret != ERROR_FILE_NOT_FOUND)
return ret; {
else if (type != REG_SZ) if (ret != ERROR_SUCCESS)
return ERROR_REGISTRY_CORRUPT; return ret;
*len += count; else if (type != REG_SZ)
return ERROR_REGISTRY_CORRUPT;
*len += count;
}
if (credential) if (credential)
{ {
credential->Comment = (LPWSTR)buffer; credential->Comment = (LPWSTR)buffer;
@ -129,11 +135,14 @@ static DWORD registry_read_credential(HKEY hkey, PCREDENTIALW credential,
} }
ret = RegQueryValueExW(hkey, wszTargetAliasValue, 0, &type, NULL, &count); ret = RegQueryValueExW(hkey, wszTargetAliasValue, 0, &type, NULL, &count);
if (ret != ERROR_FILE_NOT_FOUND && ret != ERROR_SUCCESS) if (ret != ERROR_FILE_NOT_FOUND)
return ret; {
else if (type != REG_SZ) if (ret != ERROR_SUCCESS)
return ERROR_REGISTRY_CORRUPT; return ret;
*len += count; else if (type != REG_SZ)
return ERROR_REGISTRY_CORRUPT;
*len += count;
}
if (credential) if (credential)
{ {
credential->TargetAlias = (LPWSTR)buffer; credential->TargetAlias = (LPWSTR)buffer;
@ -150,11 +159,14 @@ static DWORD registry_read_credential(HKEY hkey, PCREDENTIALW credential,
} }
ret = RegQueryValueExW(hkey, wszUserNameValue, 0, &type, NULL, &count); ret = RegQueryValueExW(hkey, wszUserNameValue, 0, &type, NULL, &count);
if (ret != ERROR_FILE_NOT_FOUND && ret != ERROR_SUCCESS) if (ret != ERROR_FILE_NOT_FOUND)
return ret; {
else if (type != REG_SZ) if (ret != ERROR_SUCCESS)
return ERROR_REGISTRY_CORRUPT; return ret;
*len += count; else if (type != REG_SZ)
return ERROR_REGISTRY_CORRUPT;
*len += count;
}
if (credential) if (credential)
{ {
credential->UserName = (LPWSTR)buffer; credential->UserName = (LPWSTR)buffer;
@ -171,9 +183,12 @@ static DWORD registry_read_credential(HKEY hkey, PCREDENTIALW credential,
} }
ret = read_credential_blob(hkey, key_data, NULL, &count); ret = read_credential_blob(hkey, key_data, NULL, &count);
if (ret != ERROR_FILE_NOT_FOUND && ret != ERROR_SUCCESS) if (ret != ERROR_FILE_NOT_FOUND)
return ret; {
*len += count; if (ret != ERROR_SUCCESS)
return ret;
*len += count;
}
if (credential) if (credential)
{ {
credential->CredentialBlob = (LPBYTE)buffer; credential->CredentialBlob = (LPBYTE)buffer;