Bladeren bron

Fix compareBytes

Gildas 5 jaren geleden
bovenliggende
commit
c92a2091de
1 gewijzigde bestanden met toevoegingen van 6 en 4 verwijderingen
  1. 6 4
      lib/single-file/single-file-util.js

+ 6 - 4
lib/single-file/single-file-util.js

@@ -349,11 +349,13 @@ this.singlefile.lib.util = this.singlefile.lib.util || (() => {
 
 		function compareBytes(mask, pattern) {
 			let patternMatch = true, index = 0;
-			const value = new Uint8Array(buffer, 0, mask.length);
-			for (index = 0; index < mask.length && patternMatch; index++) {
-				patternMatch = patternMatch && ((value[index] & mask[index]) == pattern[index]);
+			if (buffer.byteLength >= pattern.length) {
+				const value = new Uint8Array(buffer, 0, mask.length);
+				for (index = 0; index < mask.length && patternMatch; index++) {
+					patternMatch = patternMatch && ((value[index] & mask[index]) == pattern[index]);
+				}
+				return patternMatch;
 			}
-			return patternMatch && (index == mask.length);
 		}
 	}