Get Even More Visitors To Your Blog, Upgrade To A Business Listing >>

Metadefender CVEs, Hashes, Application Installers Report: March 6-13

Common Vulnerabilities and Exposures (CVE) is a catalog of publicly known cyber security vulnerabilities. The catalog is sponsored by the United States Department of Homeland Security (DHS), and threats are divided into two categories: vulnerabilities and exposures.

OPSWAT's Vulnerability Engine identifies known application vulnerabilities and reports them by severity level, allowing system administrators to identify vulnerabilities in files and data being brought into a secure network, and on endpoints within a network. This can significantly expedite remediation of the issue and save valuable resource time.

The table below lists the new CVEs and product versions for which support was added to the Metadefender database during the week of March 6-13, 2017.

To learn more about the Metadefender Core Vulnerability Engine, click here.

Click on a column header to sort by column

PRODUCT VENDOR VERSION CVE CVE Details CVSS SCORE
ownCloud ownCloud 9.1.2 and prior CVE-2017-5865 https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2017-5865 4.3
ownCloud ownCloud 9.1.2 and prior CVE-2017-5867 https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2017-5867 4
ownCloud ownCloud 9.1.2 and prior CVE-2017-5866 https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2017-5866 4
WireStack WireStack 2.2.4 and prior CVE-2017-6467 https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2017-6467 5
WireStack WireStack 2.2.4 and prior CVE-2017-6474 https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2017-6474 5
WireStack WireStack 2.2.4 and prior CVE-2017-6470 https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2017-6470 7.8
WireStack WireStack 2.2.4 and prior CVE-2017-6472 https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2017-6472 5
WireStack WireStack 2.2.4 and prior CVE-2017-6468 https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2017-6468 5
WireStack WireStack 2.2.4 and prior CVE-2017-6469 https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2017-6469 5
WireStack WireStack 2.2.4 and prior CVE-2017-6473 https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2017-6473 5
WireStack WireStack 2.2.4 and prior CVE-2017-6471 https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2017-6471 5

 

Newly supported hashes and installers as of March 13, 2017

HASH PRODUCT SIGNATURE PRODUCT VERSION DESCRIPTION FILE NAME
AD45543E325F636568A8C1695113F99A9E878F34 Google Chrome 41 56.0.2924.87 Installer for Google Chrome 64 bit ChromeStandaloneSetup64.exe
DC22090C2648D17EB083602BE638B3A037B9F379 Google Chrome 41 56.0.2924.87 Installer for Google Chrome 32 bit ChromeStandaloneSetup.exe
14D2E59FB129EB833A2A13925422DCDEF2186E7E Google Chrome 41 55.0.2883.87 Installer for Google Chrome 64 bit ChromeStandaloneSetup64.exe
51F0DC2DEF168D1D865863B18D7B7F973EF52C73 Google Chrome 41 55.0.2883.75 Installer for Google Chrome 32 bit ChromeStandaloneSetup.exe
43D8F0ED44158344AD68940384A3C70A2FADA1C4 Mozilla Firefox 46 52 Installer for Mozilla Firefox 32 bit Firefox Setup 52.0_32bit.exe
81E69ACE57636711348E34631B21D2B7568809F6 Mozilla Firefox 46 52 Installer for Mozilla Firefox 64 bit Firefox Setup 52.0_64bit.exe
EB777B44B4FE940D10076C1B213F303BA7A63923 Mozilla Firefox 46 51 Installer for Mozilla Firefox 32 bit Firefox Setup 51.0_32bit.exe
2928F24F67AC7738B294235DCC6D521287468677 Mozilla Firefox 46 51 Installer for Mozilla Firefox 64 bit Firefox Setup 51.0_64bit.exe
C77C1FE8F6E0FB2F2F97D1CE31355A51E29CE6BB Mozilla Firefox 46 51.0.1 Installer for Mozilla Firefox 32 bit Firefox Setup 51.0.1_32bit.exe
58F5A2C4D6B88C16186357EDDE048ECBA8793EF8 Mozilla Firefox 46 51.0.1 Installer for Mozilla Firefox 64 bit Firefox Setup 51.0.1_64bit.exe
D4169B900BDF4CF578537893CCDF94CBF5259305 Mozilla Firefox 46 50.0.2 Installer for Mozilla Firefox 32 bit Firefox Setup 50.0.2_32bit.exe
CA3E99DF0CA712D4C7547D282DDD7FD5E203DBAA Mozilla Firefox 46 50.0.2 Installer for Mozilla Firefox 64 bit Firefox Setup 50.0.2_64bit.exe
669D695E184DB7E98DAF9440B5A6AE9F2D02E893 Mozilla Firefox 46 50.0.1 Installer for Mozilla Firefox 32 bit Firefox Setup 50.0.1_32bit.exe
B6D3CB4B2515E25BC3DF7E0A4EB755A4A384B77B Mozilla Firefox 46 50 Installer for Mozilla Firefox 32 bit Firefox Setup 50.0_32bit.exe
535E447783F78E50F4740CC5395AA846E37D9732 Mozilla Firefox 46 50 Installer for Mozilla Firefox 64 bit Firefox Setup 50.0_64bit.exe
1D4E59639AA0D6D2EE8421311C396442E4C2CC3A Mozilla Firefox 46 49.0.2 Installer for Mozilla Firefox 32 bit Firefox Setup 49.0.2_32bit.exe
91AE1BE8AB0703F5457EA591B01F3B27B55020B8 Mozilla Firefox 46 49.0.2 Installer for Mozilla Firefox 64 bit Firefox Setup 49.0.2_64bit.exe
A44121E8F641B26A94C27FFBB6B09716E49BAE04 Mozilla Firefox 46 49.0.1 Installer for Mozilla Firefox 32 bit Firefox Setup 49.0.1_32bit.exe
3F3219584C023980DACF4B4D7CA559EE4F07FAE4 Mozilla Firefox 46 49.0.1 Installer for Mozilla Firefox 64 bit Firefox Setup 49.0.1_64bit.exe
8A0CDF404161EAD5B404AF6446D20B4BD02751AA Mozilla Firefox 46 49 Installer for Mozilla Firefox 32 bit Firefox Setup 49.0_32bit.exe
2C754E7548CE05A7E31AD44F237894E070B763B4 Mozilla Firefox 46 49 Installer for Mozilla Firefox 64 bit Firefox Setup 49.0_64bit.exe
82E3A5075A4AEB053FB45A573C0388CB576FB6CB Mozilla Firefox 46 48.0.2 Installer for Mozilla Firefox 32 bit Firefox Setup 48.0.2_32bit.exe
E353F1561E111E13BA55E8B2718F2CFF7D9A595A Mozilla Firefox 46 48.0.2 Installer for Mozilla Firefox 64 bit Firefox Setup 48.0.2_64bit.exe
68CE836CC6BE92FC4C07F7AEB12810B7549DE1AD Mozilla Firefox 46 48.0.1 Installer for Mozilla Firefox 32 bit Firefox Setup 48.0.1_32bit.exe
A57EB064B196570D89CD276352FAAFA17FB9C3CF Mozilla Firefox 46 48.0.1 Installer for Mozilla Firefox 64 bit Firefox Setup 48.0.1_64bit.exe
B07C08CE0376E9534414D23550823ABAE1859FA1 Mozilla Firefox 46 48 Installer for Mozilla Firefox 32 bit Firefox Setup 48.0_32bit.exe
8088A5E28D7C2DB8EC0B2369616B2FC047836203 Mozilla Firefox 46 48 Installer for Mozilla Firefox 64 bit Firefox Setup 48.0_64bit.exe
6D406C6F1D1E05A44B64E0F665C49E60ED955659 Mozilla Firefox 46 47.0.2 Installer for Mozilla Firefox 32 bit Firefox Setup 47.0.2_32bit.exe
48F4DC8331D67BEF6E347AECB369845D0F8500A9 Mozilla Firefox 46 47.0.2 Installer for Mozilla Firefox 64 bit Firefox Setup 47.0.2_64bit.exe
3BA9DF100E61F163827176F08BF4085CE6EE7CE3 Mozilla Firefox 46 47.0.1 Installer for Mozilla Firefox 32 bit Firefox Setup 47.0.1_32bit.exe
45EC8CA3FEC6FCF94148E3EE85E6DFA233FC94DB Mozilla Firefox 46 47.0.1 Installer for Mozilla Firefox 64 bit Firefox Setup 47.0.1_64bit.exe
0124A42AD37EC96B658692A1648F23FE9C1A16D4 Mozilla Firefox 46 47 Installer for Mozilla Firefox 32 bit Firefox Setup 47.0_32bit.exe
85DBFF8E10DD976AAFB8683730E261129C53520C Mozilla Firefox 46 47 Installer for Mozilla Firefox 64 bit Firefox Setup 47.0_64bit.exe
3BF956D3997462C4FDC4E2270DB458F5E1FAA5C4 Mozilla Firefox 46 46.0.1 Installer for Mozilla Firefox 32 bit Firefox Setup 46.0.1_32bit.exe
49075BC1FCDC9255147FA191808AAD4F395A524B Mozilla Firefox 46 46.0.1 Installer for Mozilla Firefox 64 bit Firefox Setup 46.0.1_64bit.exe
5A1647EF4CA417EC639F55808C1A39D9690D1359 Mozilla Firefox 46 46 Installer for Mozilla Firefox 32 bit Firefox Setup 46.0_32bit.exe
C4F015511E499512C5A5DC527946D3243AF6BA6E Mozilla Firefox 46 46 Installer for Mozilla Firefox 64 bit Firefox Setup 46.0_64bit.exe
D1BB913863F406E179B7F1516B692A9511E057B6       Apache Struts #installer struts-2.3.20.1-all.zip
6EE360CF44D451BF2E5A5F1D0F32EC21E21DD36C       Apache Struts struts-2.3.20.3-all.zip
F0170CBA88F4795D6301354B15577A4C67947B59       Apache Struts struts-2.3.20-all.zip
14BAEAB1B285B5E26ACA773AA12FB2A7BBDA20F5       Apache Struts struts-2.3.24.1-all.zip
EA6144DD71000D2DF7C6B7C47EAE5919284BD1DB       Apache Struts struts-2.3.24.3-all.zip
11D0F7887EFE220D951A492F4D1A4FDBD290068E       Apache Struts struts-2.3.24-all.zip
10A6D1564F1633FB3E25FF42524414FE984719FA       Apache Struts struts-2.3.28.1-all.zip
7F07719ABEA4E82AB234CDE0DCF7E35FECDE048F       Apache Struts struts-2.3.28-all.zip
F98F36824B5AF9EED0463331848B2F382AE5F004       Apache Struts struts-2.3.29-all.zip
FB6646063E98509AD32A2E3661CF1FDEDB0A28BA       Apache Struts struts-2.3.30-all.zip
E9A18265E4B2727C714F455EDF8AC30B85E34A3D       Apache Struts struts-2.3.31-all.zip
9FBEC22EC9E1C9AE59498C9E6E1B2CF04937F0F0       Apache Struts struts-2.5.1-all.zip
5C255D2601A5C6275FD1F2891FDE99C01BEC1462       Apache Struts struts-2.5.2-all.zip
81660732A53E08651C633D99B0E6042CBBAF616D Java 1465 8.0.5.13 Installer for Java 32 bit jdk-8u5-windows-i586.exe
A66D81A85C0A159B21EC9E25B9AF936F4C9B03E9 Java 1465 8.0.5.13 Installer for Java 64 bit jdk-8u5-windows-x64.exe
17BF15B99BEC5ED2F221C1982E8E89139CF612C0 Java 1465 8.0.0.132 Installer for Java 64 bit jdk-8-windows-x64.exe
757103707B16E6A79EBD4D134613E483007A0C7A Java 1465 8.0.11.12 Installer for Java 32 bit jdk-8u11-windows-i586.exe
EC7A920D68AA7AEE298CA09840C2137136205EE1 Java 1465 8.0.11.12 Installer for Java 64 bit jdk-8u11-windows-x64.exe
85CD3EC7408B41679689508A22CDBCAE30CC9E04 Mozilla Firefox 46 50.0.1 Installer for Mozilla Firefox 64 bit Firefox Setup 50.0.1_64bit.exe
09A05B1AFAD97FFA35A47D571752C3E804C200C7 Java 1465 8.0.0.132 Installer for Java 32 bit jdk-8-windows-i586.exe
30DF3349F710E6B54ADCCADADC1E1F939AB2F6DA Java 1465 8.0.20.26 Installer for Java 32 bit jdk-8u20-windows-i586.exe
1E0B574A03B3554121D290B6B8C67228EF355E00 Java 1465 8.0.20.26 Installer for Java 64 bit jdk-8u20-windows-x64.exe
79B4B68AEA5EF6448C39C2EE3103722DB6548FF0 Java 1465 8.0.25.18 Installer for Java 32 bit jdk-8u25-windows-i586.exe
5E3718550076CB75D3B5280C5D333C77607C49AE Java 1465 8.0.25.18 Installer for Java 64 bit jdk-8u25-windows-x64.exe
5B8A1F8D11ECBCD46ED3389498EF67A4F699133B Java 1465 8.0.31.13 Installer for Java 32 bit jdk-8u31-windows-i586.exe
3E3F8519B4F1974BD438FBE49CAF502B510079CB Java 1465 8.0.31.13 Installer for Java 64 bit jdk-8u31-windows-x64.exe
FF9F4D62DFFA0A81ABBC0E5E151586301DDF4884 Java 1465 8.0.40.26 Installer for Java 32 bit jdk-8u40-windows-i586.exe
1747186A1D688622C3E212A84C8524E5B19DC2F0 Java 1465 8.0.40.26 Installer for Java 64 bit jdk-8u40-windows-x64.exe
8E839FE0E30A56784566017F6ACDB0FBE213C8BC Java 1465 8.0.45.15 Installer for Java 32 bit jdk-8u45-windows-i586.exe
FD4819E672D211063BA689461AC6C2F5A7C958A8 Java 1465 8.0.45.15 Installer for Java 64 bit jdk-8u45-windows-x64.exe
0AAEE8FF5F62FDCB3685D513BE471C49824D7E04 Java 1465 8.0.51.16 Installer for Java 32 bit jdk-8u51-windows-i586.exe
9BFB05A63A9E68C82ADC0540A289D82B8F7EC287 Java 1465 8.0.51.16 Installer for Java 64 bit jdk-8u51-windows-x64.exe
47B36BC0FDC44029F82A50346FBB85B8F7803D7F Java 1465 8.0.600.27 Installer for Java 32 bit jdk-8u60-windows-i586.exe
2FF113C2B4F92468FA76D597E9A42797E5BE7DEC Java 1465 8.0.600.27 Installer for Java 64 bit jdk-8u60-windows-x64.exe
66BDACC1252F309F157FD0786D2E148DBB394629 Java 1465 8.0.650.17 Installer for Java 32 bit jdk-8u65-windows-i586.exe
6FCF13B70CF5840E2DC128C586E93BA62B355A57 Java 1465 8.0.650.17 Installer for Java 64 bit jdk-8u65-windows-x64.exe
0013F600723A1A16AA97F7C3FBE1C27FD7674CBE Java 1465 8.0.660.18 Installer for Java 32 bit jdk-8u66-windows-i586.exe
5A56BD05916E8868A550A933BA8F1D2078BA06A4 Java 1465 8.0.660.18 Installer for Java 64 bit jdk-8u66-windows-x64.exe
C6726FB46CB40B42B4B545502EE87172B7D290F5 Java 1465 8.0.710.15 Installer for Java 32 bit jdk-8u71-windows-i586.exe
E6788DB61F0FFE7BE25C46EFF9107F8D096F316C Java 1465 8.0.710.15 Installer for Java 64 bit jdk-8u71-windows-x64.exe
D1B6E793C21F1BEC935F647EC49A12BC54109ACE Java 1465 8.0.720.15 Installer for Java 32 bit jdk-8u72-windows-i586.exe
0D1492DE4F6D95C26C2052982885C4466C19404E Java 1465 8.0.720.15 Installer for Java 64 bit jdk-8u72-windows-x64.exe
F56E21ECE567F42FCE5A38961BD81288DD2956C0 Java 1465 8.0.730.2 Installer for Java 32 bit jdk-8u73-windows-i586.exe
31BC6D0A2CFCA268E7B2A8F1321B2D08BEF0D417 Java 1465 8.0.730.2 Installer for Java 64 bit jdk-8u73-windows-x64.exe
8FA2C7F22B9176D0201D40DC21C29BC7002F5251 Java 1465 8.0.740.2 Installer for Java 32 bit jdk-8u74-windows-i586.exe
FDD3EECE9DDB19CC4BB13096752B065D313E1C31 Java 1465 8.0.740.2 Installer for Java 64 bit jdk-8u74-windows-x64.exe
1560ADD14DDE3E4C5BAC020116F5BC06D49BE567 Java 1465 8.0.770.3 Installer for Java 32 bit jdk-8u77-windows-i586.exe
41819CD08D7224CB468BD0BB01E22510B18D2F4B Java 1465 8.0.770.3 Installer for Java 64 bit jdk-8u77-windows-x64.exe
5374B68F6CCA15345FD7D8DE0B352CD37804068D Java 1465 8.0.910.15 Installer for Java 32 bit jdk-8u91-windows-i586.exe
3B5EA8FE2D37813789718252D819DCEE95F48706 Java 1465 8.0.910.15 Installer for Java 64 bit jdk-8u91-windows-x64.exe
53B827116A7307F812501B979D966FC2692D54A4 Java 1465 8.0.920.14 Installer for Java 64 bit jdk-8u92-windows-x64.exe
2D2D56F5774CC2F15D9E54BEBC9A868913E606B7 Java 1465 8.0.1010.13 Installer for Java 32 bit jdk-8u101-windows-i586.exe
8213503EA518DB7C949B997C9B120F58D0BD2C10 Java 1465 8.0.1010.13 Installer for Java 64 bit jdk-8u101-windows-x64.exe
3ACF0FCA1D5BF56F8A2CE577D055BFD0DD1773F9 Java 1465 8.0.1020.14 Installer for Java 32 bit jdk-8u102-windows-i586.exe
C45D89DB2F4319FEC2399E2A49F6B28969730E0C Java 1465 8.0.1020.14 Installer for Java 64 bit jdk-8u102-windows-x64.exe
Vulnerabilities
Vulnerability Engine
CVEs
JS: 
var stIsIE = /*@[email protected]*/false; sorttable = { init: function() { // quit if this function has already been called if (arguments.callee.done) return; // flag this function so we don't do the same thing twice arguments.callee.done = true; // kill the timer if (_timer) clearInterval(_timer); if (!document.createElement || !document.getElementsByTagName) return; sorttable.DATE_RE = /^(\d\d?)[\/\.-](\d\d?)[\/\.-]((\d\d)?\d\d)$/; forEach(document.getElementsByTagName('table'), function(table) { if (table.className.search(/\bsortable\b/) != -1) { sorttable.makeSortable(table); } }); }, makeSortable: function(table) { if (table.getElementsByTagName('thead').length == 0) { // table doesn't have a tHead. Since it should have, create one and // put the first table row in it. the = document.createElement('thead'); the.appendChild(table.rows[0]); table.insertBefore(the,table.firstChild); } // Safari doesn't support table.tHead, sigh if (table.tHead == null) table.tHead = table.getElementsByTagName('thead')[0]; if (table.tHead.rows.length != 1) return; // can't cope with two header rows // Sorttable v1 put rows with a class of "sortbottom" at the bottom (as // "total" rows, for example). This is B&R, since what you're supposed // to do is put them in a tfoot. So, if there are sortbottom rows, // for backwards compatibility, move them to tfoot (creating it if needed). sortbottomrows = []; for (var i=0; i5' : ' ▴'; this.appendChild(sortrevind); return; } if (this.className.search(/\bsorttable_sorted_reverse\b/) != -1) { // if we're already sorted by this column in reverse, just // re-reverse the table, which is quicker sorttable.reverse(this.sorttable_tbody); this.className = this.className.replace('sorttable_sorted_reverse', 'sorttable_sorted'); this.removeChild(document.getElementById('sorttable_sortrevind')); sortfwdind = document.createElement('span'); sortfwdind.id = "sorttable_sortfwdind"; sortfwdind.innerHTML = stIsIE ? '&nbsp6' : ' ▾'; this.appendChild(sortfwdind); return; } // remove sorttable_sorted classes theadrow = this.parentNode; forEach(theadrow.childNodes, function(cell) { if (cell.nodeType == 1) { // an element cell.className = cell.className.replace('sorttable_sorted_reverse',''); cell.className = cell.className.replace('sorttable_sorted',''); } }); sortfwdind = document.getElementById('sorttable_sortfwdind'); if (sortfwdind) { sortfwdind.parentNode.removeChild(sortfwdind); } sortrevind = document.getElementById('sorttable_sortrevind'); if (sortrevind) { sortrevind.parentNode.removeChild(sortrevind); } this.className += ' sorttable_sorted'; sortfwdind = document.createElement('span'); sortfwdind.id = "sorttable_sortfwdind"; sortfwdind.innerHTML = stIsIE ? '&nbsp6' : ' ▾'; this.appendChild(sortfwdind); // build an array to sort. This is a Schwartzian transform thing, // i.e., we "decorate" each row with the actual sort key, // sort based on the sort keys, and then put the rows back in order // which is a lot faster because you only do getInnerText once per row row_array = []; col = this.sorttable_columnindex; rows = this.sorttable_tbody.rows; for (var j=0; j 12) { // definitely dd/mm return sorttable.sort_ddmm; } else if (second > 12) { return sorttable.sort_mmdd; } else { // looks like a date, but we can't tell which, so assume // that it's dd/mm (English imperialism!) and keep looking sortfn = sorttable.sort_ddmm; } } } } return sortfn; }, getInnerText: function(node) { // gets the text we want to use for sorting for a cell. // strips leading and trailing whitespace. // this is *not* a generic getInnerText function; it's special to sorttable. // for example, you can override the cell text with a customkey attribute. // it also gets .value for fields. if (!node) return ""; hasInputs = (typeof node.getElementsByTagName == 'function') && node.getElementsByTagName('input').length; if (node.getAttribute("sorttable_customkey") != null) { return node.getAttribute("sorttable_customkey"); } else if (typeof node.textContent != 'undefined' && !hasInputs) { return node.textContent.replace(/^\s+|\s+$/g, ''); } else if (typeof node.innerText != 'undefined' && !hasInputs) { return node.innerText.replace(/^\s+|\s+$/g, ''); } else if (typeof node.text != 'undefined' && !hasInputs) { return node.text.replace(/^\s+|\s+$/g, ''); } else { switch (node.nodeType) { case 3: if (node.nodeName.toLowerCase() == 'input') { return node.value.replace(/^\s+|\s+$/g, ''); } case 4: return node.nodeValue.replace(/^\s+|\s+$/g, ''); break; case 1: case 11: var innerText = ''; for (var i = 0; i =0; i--) { tbody.appendChild(newrows[i]); } delete newrows; }, /* sort functions each sort function takes two parameters, a and b you are comparing a[0] and b[0] */ sort_numeric: function(a,b) { aa = parseFloat(a[0].replace(/[^0-9.-]/g,'')); if (isNaN(aa)) aa = 0; bb = parseFloat(b[0].replace(/[^0-9.-]/g,'')); if (isNaN(bb)) bb = 0; return aa-bb; }, sort_alpha: function(a,b) { if (a[0]==b[0]) return 0; if (a[0] 0 ) { var q = list[i]; list[i] = list[i+1]; list[i+1] = q; swap = true; } } // for t--; if (!swap) break; for(var i = t; i > b; --i) { if ( comp_func(list[i], list[i-1]) "); var script = document.getElementById("__ie_onload"); script.onreadystatechange = function() { if (this.readyState == "complete") { sorttable.init(); // call the onload handler } }; /*@end @*/ /* for Safari */ if (/WebKit/i.test(navigator.userAgent)) { // sniff var _timer = setInterval(function() { if (/loaded|complete/.test(document.readyState)) { sorttable.init(); // call the onload handler } }, 10); } /* for other browsers */ window.onload = sorttable.init; // written by Dean Edwards, 2005 // with input from Tino Zijdel, Matthias Miller, Diego Perini // http://dean.edwards.name/weblog/2005/10/add-event/ function dean_addEvent(element, type, handler) { if (element.addEventListener) { element.addEventListener(type, handler, false); } else { // assign each event handler a unique ID if (!handler.$$guid) handler.$$guid = dean_addEvent.guid++; // create a hash table of event types for the element if (!element.events) element.events = {}; // create a hash table of event handlers for each element/event pair var handlers = element.events[type]; if (!handlers) { handlers = element.events[type] = {}; // store the existing event handler (if there is one) if (element["on" + type]) { handlers[0] = element["on" + type]; } } // store the event handler in the hash table handlers[handler.$$guid] = handler; // assign a global event handler to do all the work element["on" + type] = handleEvent; } }; // a counter used to create unique IDs dean_addEvent.guid = 1; function removeEvent(element, type, handler) { if (element.removeEventListener) { element.removeEventListener(type, handler, false); } else { // delete the event handler from the hash table if (element.events && element.events[type]) { delete element.events[type][handler.$$guid]; } } }; function handleEvent(event) { var returnValue = true; // grab the event object (IE uses a global event object) event = event || fixEvent(((this.ownerDocument || this.document || this).parentWindow || window).event); // get a reference to the hash table of event handlers var handlers = this.events[event.type]; // execute each event handler for (var i in handlers) { this.$$handleEvent = handlers[i]; if (this.$$handleEvent(event) === false) { returnValue = false; } } return returnValue; }; function fixEvent(event) { // add W3C standard event methods event.preventDefault = fixEvent.preventDefault; event.stopPropagation = fixEvent.stopPropagation; return event; }; fixEvent.preventDefault = function() { this.returnValue = false; }; fixEvent.stopPropagation = function() { this.cancelBubble = true; } // Dean's forEach: http://dean.edwards.name/base/forEach.js /* forEach, version 1.0 Copyright 2006, Dean Edwards License: http://www.opensource.org/licenses/mit-license.php */ // array-like enumeration if (!Array.forEach) { // mozilla already supports this Array.forEach = function(array, block, context) { for (var i = 0; i


This post first appeared on OPSWAT, please read the originial post: here

Share the post

Metadefender CVEs, Hashes, Application Installers Report: March 6-13

×

Subscribe to Opswat

Get updates delivered right to your inbox!

Thank you for your subscription

×