mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-09-04 06:48:38 +09:00
Limit displayed user/host strings to sane lengths.
This commit is contained in:
parent
c202fc4bf4
commit
49676c9254
1 changed files with 30 additions and 0 deletions
|
|
@ -53,6 +53,9 @@ namespace net {
|
|||
#define HTTP_AUTH_NEGOTIATE_INSECURE 6
|
||||
#define HTTP_AUTH_NEGOTIATE_SECURE 7
|
||||
|
||||
#define MAX_DISPLAYED_USER_LENGTH 64
|
||||
#define MAX_DISPLAYED_HOST_LENGTH 64
|
||||
|
||||
static void
|
||||
GetOriginAttributesSuffix(nsIChannel* aChan, nsACString &aSuffix)
|
||||
{
|
||||
|
|
@ -1512,6 +1515,33 @@ nsHttpChannelAuthProvider::ConfirmAuth(const nsString &bundleKey,
|
|||
return true;
|
||||
|
||||
NS_ConvertUTF8toUTF16 ucsHost(host), ucsUser(user);
|
||||
|
||||
size_t userLength = ucsUser.Length();
|
||||
if (userLength > MAX_DISPLAYED_USER_LENGTH) {
|
||||
size_t desiredLength = MAX_DISPLAYED_USER_LENGTH;
|
||||
// Don't cut off right before a low surrogate. Just include it.
|
||||
if (NS_IS_LOW_SURROGATE(ucsUser[desiredLength])) {
|
||||
desiredLength++;
|
||||
}
|
||||
ucsUser.Replace(desiredLength, userLength - desiredLength,
|
||||
nsContentUtils::GetLocalizedEllipsis());
|
||||
}
|
||||
|
||||
size_t hostLen = ucsHost.Length();
|
||||
if (hostLen > MAX_DISPLAYED_HOST_LENGTH) {
|
||||
size_t cutPoint = hostLen - MAX_DISPLAYED_HOST_LENGTH;
|
||||
// Likewise, don't cut off right before a low surrogate here.
|
||||
// Keep the low surrogate
|
||||
if (NS_IS_LOW_SURROGATE(ucsHost[cutPoint])) {
|
||||
cutPoint--;
|
||||
}
|
||||
// It's possible cutPoint was 1 and is now 0. Only insert the ellipsis
|
||||
// if we're actually removing anything.
|
||||
if (cutPoint > 0) {
|
||||
ucsHost.Replace(0, cutPoint, nsContentUtils::GetLocalizedEllipsis());
|
||||
}
|
||||
}
|
||||
|
||||
const char16_t *strs[2] = { ucsHost.get(), ucsUser.get() };
|
||||
|
||||
nsXPIDLString msg;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue