authority_end = strchrW(name, '?');
if (!authority_end)
authority_end = name + strlenW(name);
- /* Remove any port number from the authority */
- for (colon = authority_end; colon >= name && *colon != ':'; colon--)
+ /* Remove any port number from the authority. The userinfo portion
+ * of an authority may contain a colon, so stop if a userinfo portion
+ * is found (indicated by '@').
+ */
+ for (colon = authority_end; colon >= name && *colon != ':' &&
+ *colon != '@'; colon--)
;
if (*colon == ':')
authority_end = colon;
TRACE("(%s, %p, %p, %p)\n", debugstr_a(szPolicyOID), pChainContext,
pPolicyPara, pPolicyStatus);
- if (!HIWORD(szPolicyOID))
+ if (IS_INTOID(szPolicyOID))
{
switch (LOWORD(szPolicyOID))
{