diff --git a/lib/connection-request.ts b/lib/connection-request.ts index 228285a..686243c 100644 --- a/lib/connection-request.ts +++ b/lib/connection-request.ts @@ -169,9 +169,13 @@ export async function httpConnectionRequest( if (res.statusCode === 503) return "Device is offline"; if (res.statusCode === 401 && res.headers["www-authenticate"]) { - authHeader = auth.parseWwwAuthenticateHeader( - res.headers["www-authenticate"] - ); + try { + authHeader = auth.parseWwwAuthenticateHeader( + res.headers["www-authenticate"] + ); + } catch (err) { + return "Connection request error: Error parsing www-authenticate header"; + } [username, password, authExp] = await extractAuth(authExp, false); } else { return `Connection request error: Unexpected status code ${res.statusCode}`; diff --git a/lib/cwmp.ts b/lib/cwmp.ts index 355ea36..4776687 100644 --- a/lib/cwmp.ts +++ b/lib/cwmp.ts @@ -84,9 +84,13 @@ async function authenticate( let authentication; if (sessionContext.httpRequest.headers["authorization"]) { - authentication = auth.parseAuthorizationHeader( - sessionContext.httpRequest.headers["authorization"] - ); + try { + authentication = auth.parseAuthorizationHeader( + sessionContext.httpRequest.headers["authorization"] + ); + } catch (err) { + return false; + } } if (authentication && authentication.method === "Digest") {