@@ -314,21 +314,21 @@ function _storeHeader(firstLine, headers) {
314314 if ( state . expect ) this . _send ( '' ) ;
315315}
316316
317- function storeHeader ( self , state , field , value , validate ) {
317+ function storeHeader ( self , state , key , value , validate ) {
318318 if ( validate ) {
319- if ( ! checkIsHttpToken ( field ) ) {
319+ if ( typeof key !== 'string' || ! key || ! checkIsHttpToken ( key ) ) {
320320 throw new TypeError (
321- 'Header name must be a valid HTTP Token ["' + field + '"]' ) ;
321+ 'Header name must be a valid HTTP Token ["' + key + '"]' ) ;
322322 }
323323 if ( value === undefined ) {
324- throw new Error ( 'Header "%s" value must not be undefined' , field ) ;
324+ throw new Error ( 'Header "%s" value must not be undefined' , key ) ;
325325 } else if ( checkInvalidHeaderChar ( value ) ) {
326- debug ( 'Header "%s" contains invalid characters' , field ) ;
326+ debug ( 'Header "%s" contains invalid characters' , key ) ;
327327 throw new TypeError ( 'The header content contains invalid characters' ) ;
328328 }
329329 }
330- state . header += field + ': ' + escapeHeaderValue ( value ) + CRLF ;
331- matchHeader ( self , state , field , value ) ;
330+ state . header += key + ': ' + escapeHeaderValue ( value ) + CRLF ;
331+ matchHeader ( self , state , key , value ) ;
332332}
333333
334334function matchConnValue ( self , state , value ) {
@@ -374,7 +374,7 @@ function matchHeader(self, state, field, value) {
374374}
375375
376376function validateHeader ( msg , name , value ) {
377- if ( ! checkIsHttpToken ( name ) )
377+ if ( typeof name !== 'string' || ! name || ! checkIsHttpToken ( name ) )
378378 throw new TypeError (
379379 'Header name must be a valid HTTP Token ["' + name + '"]' ) ;
380380 if ( value === undefined )
@@ -568,7 +568,7 @@ OutgoingMessage.prototype.addTrailers = function addTrailers(headers) {
568568 field = key ;
569569 value = headers [ key ] ;
570570 }
571- if ( ! checkIsHttpToken ( field ) ) {
571+ if ( typeof field !== 'string' || ! field || ! checkIsHttpToken ( field ) ) {
572572 throw new TypeError (
573573 'Trailer name must be a valid HTTP Token ["' + field + '"]' ) ;
574574 }
0 commit comments