Throw an exception when the $key argument to hash_hmac is not a string
authorGergő Tisza <tgr.huwiki@gmail.com>
Thu, 24 Mar 2016 18:22:45 +0000 (19:22 +0100)
committerGergő Tisza <tgr.huwiki@gmail.com>
Thu, 24 Mar 2016 19:54:54 +0000 (20:54 +0100)
HHVM throws a fatal error when $key is not a string (unlike $data which
is typecast), so we might as well as throw an exception so that
at least we have a stack trace.

Bug: T126316
Change-Id: Iad9a499b51647c7dbcd58e9ab7ac8e8cb6359bba

includes/utils/MWCryptHash.php

index 72c620e..1117357 100644 (file)
@@ -105,6 +105,10 @@ class MWCryptHash {
         * @return string An hmac hash of the data + key
         */
        public static function hmac( $data, $key, $raw = true ) {
+               if ( !is_string( $key ) ) {
+                       // a fatal error in HHVM; an exception will at least give us a stack trace
+                       throw new InvalidArgumentException( 'Invalid key type: ' . gettype( $key ) );
+               }
                return hash_hmac( self::hashAlgo(), $data, $key, $raw );
        }