head 1.8; access; symbols pkgsrc-2015Q4:1.5.0.4 pkgsrc-2015Q4-base:1.5 pkgsrc-2015Q3:1.5.0.2 pkgsrc-2015Q3-base:1.5 pkgsrc-2015Q2:1.4.0.4 pkgsrc-2015Q2-base:1.4 pkgsrc-2015Q1:1.4.0.2 pkgsrc-2015Q1-base:1.4; locks; strict; comment @// @; 1.8 date 2017.01.25.13.24.51; author ryoon; state dead; branches; next 1.7; commitid 3acwYN6np6o7SlDz; 1.7 date 2017.01.20.15.03.37; author ryoon; state Exp; branches; next 1.6; commitid 76C6sFH8mxPWzICz; 1.6 date 2016.03.08.21.32.52; author ryoon; state dead; branches; next 1.5; commitid BVJhJwzz8HleXSXy; 1.5 date 2015.08.11.23.48.18; author ryoon; state Exp; branches; next 1.4; commitid uPb40BQqdcXesUwy; 1.4 date 2015.02.28.04.30.55; author ryoon; state Exp; branches; next 1.3; commitid Y4EEeVfm51r1kJby; 1.3 date 2015.02.14.07.59.24; author martin; state Exp; branches; next 1.2; commitid LBHlpgZO5vxlVW9y; 1.2 date 2015.02.12.13.50.22; author wiz; state dead; branches; next 1.1; commitid sMHbdx7PcDpGVI9y; 1.1 date 2015.02.08.09.36.31; author martin; state Exp; branches; next ; commitid C574FeP8BglyEb9y; desc @@ 1.8 log @Update to 51.0 Changelog: New Users can view passwords in the save password prompt before saving them Added a zoom button in the URL bar: Displays percent above or below 100 percent when a user has changed the page zoom setting from the default Lets users return to the default setting by clicking on the button Improved video performance for users without GPU acceleration for less CPU usage and a better full screen experience Firefox will save passwords even in forms that do not have “submit” events Added support for FLAC (Free Lossless Audio Codec) playback Added support for WebGL 2, with advanced graphics rendering features like transform feedback, improved texturing capabilities, and a new sophisticated shading language A warning is displayed when a login page does not have a secure connection Added Georgian (ka) and Kabyle (kab) locales An even faster E10s! Tab Switching is better! Improved reliability of browser data sync Remove Belarusian (be) locale Fixed Various security fixes Changed Use 2D graphics library (Skia) for content rendering on Linux Re-enabled E10s support for Russian (ru) locale Updated to NSS 3.28.1 Security fixes: #CVE-2017-5375: Excessive JIT code allocation allows bypass of ASLR and DEP #CVE-2017-5376: Use-after-free in XSL #CVE-2017-5377: Memory corruption with transforms to create gradients in Skia #CVE-2017-5378: Pointer and frame data leakage of Javascript objects #CVE-2017-5379: Use-after-free in Web Animations #CVE-2017-5380: Potential use-after-free during DOM manipulations #CVE-2017-5390: Insecure communication methods in Developer Tools JSON viewer #CVE-2017-5389: WebExtensions can install additional add-ons via modified host requests #CVE-2017-5396: Use-after-free with Media Decoder #CVE-2017-5381: Certificate Viewer exporting can be used to navigate and save to arbitrary filesystem locations #CVE-2017-5382: Feed preview can expose privileged content errors and exceptions #CVE-2017-5383: Location bar spoofing with unicode characters #CVE-2017-5384: Information disclosure via Proxy Auto-Config (PAC) #CVE-2017-5385: Data sent in multipart channels ignores referrer-policy response headers #CVE-2017-5386: WebExtensions can use data: protocol to affect other extensions #CVE-2017-5394: Android location bar spoofing using fullscreen and JavaScript events #CVE-2017-5391: Content about: pages can load privileged about: pages #CVE-2017-5392: Weak references using multiple threads on weak proxy objects lead to unsafe memory usage #CVE-2017-5393: Remove addons.mozilla.org CDN from whitelist for mozAddonManager #CVE-2017-5395: Android location bar spoofing during scrolling #CVE-2017-5387: Disclosure of local file existence through TRACK tag error messages #CVE-2017-5388: WebRTC can be used to generate a large amount of UDP traffic for DDOS attacks #CVE-2017-5374: Memory safety bugs fixed in Firefox 51 #CVE-2017-5373: Memory safety bugs fixed in Firefox 51 and Firefox ESR 45.7 @ text @$NetBSD: patch-netwerk_protocol_http_Http2Session.cpp,v 1.7 2017/01/20 15:03:37 ryoon Exp $ Fix an insecure connection error with NSS 3.28 or later in HTTP2 case https://hg.mozilla.org/mozilla-central/rev/361ac226da2a --- netwerk/protocol/http/Http2Session.cpp.orig 2016-10-31 20:15:27.000000000 +0000 +++ netwerk/protocol/http/Http2Session.cpp @@@@ -3542,8 +3542,8 @@@@ Http2Session::ConfirmTLSProfile() LOG3(("Http2Session::ConfirmTLSProfile %p FAILED due to DH %d < 2048\n", this, keybits)); RETURN_SESSION_ERROR(this, INADEQUATE_SECURITY); - } else if (kea == ssl_kea_ecdh && keybits < 256) { // 256 bits is "security level" of 128 - LOG3(("Http2Session::ConfirmTLSProfile %p FAILED due to ECDH %d < 256\n", + } else if (kea == ssl_kea_ecdh && keybits < 224) { // see rfc7540 9.2.1. + LOG3(("Http2Session::ConfirmTLSProfile %p FAILED due to ECDH %d < 224\n", this, keybits)); RETURN_SESSION_ERROR(this, INADEQUATE_SECURITY); } @ 1.7 log @Fix an insecure connection error in HTTP2 case with devel/nss-3.28 or later Bump PKGREVISION @ text @d1 1 a1 1 $NetBSD$ @ 1.6 log @Update to 45.0 Changelog: New Instant browser tab sharing through Hello Tabs synced via Firefox Accounts from other devices are now shown in dropdown area of Awesome Bar when searching Synced Tabs button in button bar Introduce a new preference (network.dns.blockDotOnion) to allow blocking .onion at the DNS level Guarani [gn] locale added Fixed URLs containing a Unicode-format Internationalized Domain Name (IDN) are now properly redirected Various security fixes Fixed in Firefox 45 2016-37 Font vulnerabilities in the Graphite 2 library 2016-36 Use-after-free during processing of DER encoded keys in NSS 2016-35 Buffer overflow during ASN.1 decoding in NSS 2016-34 Out-of-bounds read in HTML parser following a failed allocation 2016-33 Use-after-free in GetStaticInstance in WebRTC 2016-32 WebRTC and LibVPX vulnerabilities found through code inspection 2016-31 Memory corruption with malicious NPAPI plugin 2016-30 Buffer overflow in Brotli decompression 2016-29 Same-origin policy violation using perfomance.getEntries and history navigation with session restore 2016-28 Addressbar spoofing though history navigation and Location protocol property 2016-27 Use-after-free during XML transformations 2016-26 Memory corruption when modifying a file being read by FileReader 2016-25 Use-after-free when using multiple WebRTC data channels 2016-24 Use-after-free in SetBody 2016-23 Use-after-free in HTML5 string parser 2016-22 Service Worker Manager out-of-bounds read in Service Worker Manager 2016-21 Displayed page address can be overridden 2016-20 Memory leak in libstagefright when deleting an array during MP4 processing 2016-19 Linux video memory DOS with Intel drivers 2016-18 CSP reports fail to strip location information for embedded iframe pages 2016-17 Local file overwriting and potential privilege escalation through CSP reports 2016-16 Miscellaneous memory safety hazards (rv:45.0 / rv:38.7) @ text @d1 1 a1 1 $NetBSD: patch-netwerk_protocol_http_Http2Session.cpp,v 1.5 2015/08/11 23:48:18 ryoon Exp $ d3 2 a4 2 https://bugzilla.mozilla.org/show_bug.cgi?id=1130822 Fix obivous alignment issues (causing crashes on some architectures). d6 1 a6 1 --- netwerk/protocol/http/Http2Session.cpp.orig 2015-08-07 15:54:20.000000000 +0000 d8 11 a18 8 @@@@ -33,7 +33,6 @@@@ #include "nsStandardURL.h" #include "nsURLHelper.h" #include "prprf.h" -#include "prnetdb.h" #include "sslt.h" #ifdef DEBUG @ 1.5 log @Update to 40.0 Changelog: New Support for Windows 10 New Added protection against unwanted software downloads New User can receive suggested tiles in the new tab page based on categories Firefox matches to browsing history (en-US only). New Hello allows adding a link to conversations to provide context on what the conversation will be about New New style for add-on manager based on the in-content preferences style New Improved scrolling, graphics, and video playback performance with off main thread compositing (GNU/Linux only) New Graphic blocklist mechanism improved: Firefox version ranges can be specified, limiting the number of devices blocked Changed Add-on extensions that are not signed by Mozilla will display a warning Changed NPAPI Plug-in performance improved via asynchronous initialization Changed Smoother animation and scrolling with hardware vsync (Windows only) Changed JPEG images use less memory when scaled and can be painted faster Changed Sub-resources can no longer request HTTP authentication, thus protecting users from inadvertently disclosing login data HTML5 IndexedDB transactions are now non-durable by default HTML5 Implemented AudioBufferSourceNode.detune to modulate playback rate in cents, a logarithmic unit of measure used for musical intervals Developer Improved Performance tools in the developer tools: Waterfall view, Call Tree view and a Flame Chart view Developer New rules view tooltip in the Inspector to tweak CSS Filter values Developer Console API messages from SharedWorker and ServiceWorker are now displayed in web console Developer New page ruler highlighting tool that displays lightweight horizontal and vertical rules on a page Developer Inspector now searches across all content frames in a page Fixed Kannada text does not display properly in built-in pdf viewer Fixed Various security fixes Known Issues unresolved If Firefox is restarted from an add-on install notification, on-going private browsing downloads might be canceled without warning (1185294) Fixed in Firefox 40 2015-92 Use-after-free in XMLHttpRequest with shared workers 2015-91 Mozilla Content Security Policy allows for asterisk wildcards in violation of CSP specification 2015-90 Vulnerabilities found through code inspection 2015-89 Buffer overflows on Libvpx when decoding WebM video 2015-88 Heap overflow in gdk-pixbuf when scaling bitmap images 2015-87 Crash when using shared memory in JavaScript 2015-86 Feed protocol with POST bypasses mixed content protections 2015-85 Out-of-bounds write with Updater and malicious MAR file 2015-84 Arbitrary file overwriting through Mozilla Maintenance Service with hard links 2015-83 Overflow issues in libstagefright 2015-82 Redefinition of non-configurable JavaScript object properties 2015-81 Use-after-free in MediaStream playback 2015-80 Out-of-bounds read with malformed MP3 file 2015-79 Miscellaneous memory safety hazards (rv:40.0 / rv:38.2) @ text @d1 1 a1 1 $NetBSD: patch-netwerk_protocol_http_Http2Session.cpp,v 1.4 2015/02/28 04:30:55 ryoon Exp $ @ 1.4 log @Update to 36.0 Changelog: New Pinned tiles on the new tab page can be synced New Support for the full HTTP/2 protocol. HTTP/2 enables a faster, more scalable, and more responsive web. New Locale added: Uzbek (uz) Changed -remote option removed Changed No longer accept insecure RC4 ciphers whenever possible Changed Phasing out Certificates with 1024-bit RSA Keys Changed Shut down hangs will now show the crash reporter before exiting the program Changed Add-on Compatibility HTML5 Support for the ECMAScript 6 Symbol data type added HTML5 unicode-range CSS descriptor implemented HTML5 CSSOM-View scroll behavior implemented allowing smooth scrolling of content without custom libraries HTML5 object-fit and object-position implemented. Defines how and where the content of a replaced element is displayed HTML5 isolation CSS property implemented. Create a new stacking context to isolate groups of boxes to control which blend together HTML5 CSS3 will-change property implemented. Hints the browser of elements that will be modified. The browser will perform some performance optimization for these HTML5 Changed JavaScript 'const' semantics to conform better to the ES6 specification. The const declaration is now block-scoped and requires an initializer. It also can not be redeclared anymore. HTML5 Improved ES6 generators for better performance Developer Eval sources now appear in the Debugger Debug JavaScript code that is evaluated dynamically, either as a string passed to eval() or as a string passed to the Function constructor Developer DOM Promises inspection Developer Inspector: More paste options in markup view Fixed CSS gradients work on premultiplied colors Fixed Fix some unexpected logout from Facebook or Google after restart Fixed Various security fixes Fixed in Firefox 36 2015-27 Caja Compiler JavaScript sandbox bypass 2015-26 UI Tour whitelisted sites in background tab can spoof foreground tabs 2015-25 Local files or privileged URLs in pages can be opened into new tabs 2015-24 Reading of local files through manipulation of form autocomplete 2015-23 Use-after-free in Developer Console date with OpenType Sanitiser 2015-22 Crash using DrawTarget in Cairo graphics library 2015-21 Buffer underflow during MP3 playback 2015-20 Buffer overflow during CSS restyling 2015-19 Out-of-bounds read and write while rendering SVG content 2015-18 Double-free when using non-default memory allocators with a zero-length XHR 2015-17 Buffer overflow in libstagefright during MP4 video playback 2015-16 Use-after-free in IndexedDB 2015-15 TLS TURN and STUN connections silently fail to simple TCP connections 2015-14 Malicious WebGL content crash when writing strings 2015-13 Appended period to hostnames can bypass HPKP and HSTS protections 2015-12 Invoking Mozilla updater will load locally stored DLL files 2015-11 Miscellaneous memory safety hazards (rv:36.0 / rv:31.5) @ text @d1 1 a1 1 $NetBSD: patch-netwerk_protocol_http_Http2Session.cpp,v 1.3 2015/02/14 07:59:24 martin Exp $ d6 1 a6 1 --- netwerk/protocol/http/Http2Session.cpp.orig 2015-02-17 21:40:50.000000000 +0000 d8 1 a8 1 @@@@ -32,7 +32,6 @@@@ a15 79 @@@@ -1295,7 +1294,7 @@@@ Http2Session::RecvPriority(Http2Session return rv; uint32_t newPriorityDependency = - PR_ntohl(*reinterpret_cast(self->mInputFrameBuffer.get() + kFrameHeaderBytes)); + NS_decodeN32(self->mInputFrameBuffer.get() + kFrameHeaderBytes); bool exclusive = !!(newPriorityDependency & 0x80000000); newPriorityDependency &= 0x7fffffff; uint8_t newPriorityWeight = *(self->mInputFrameBuffer.get() + kFrameHeaderBytes + 4); @@@@ -1326,7 +1325,7 @@@@ Http2Session::RecvRstStream(Http2Session } self->mDownstreamRstReason = - PR_ntohl(*reinterpret_cast(self->mInputFrameBuffer.get() + kFrameHeaderBytes)); + NS_decodeN32(self->mInputFrameBuffer.get() + kFrameHeaderBytes); LOG3(("Http2Session::RecvRstStream %p RST_STREAM Reason Code %u ID %x\n", self, self->mDownstreamRstReason, self->mInputFrameID)); @@@@ -1387,8 +1386,8 @@@@ Http2Session::RecvSettings(Http2Session uint8_t *setting = reinterpret_cast (self->mInputFrameBuffer.get()) + kFrameHeaderBytes + index * 6; - uint16_t id = PR_ntohs(*reinterpret_cast(setting)); - uint32_t value = PR_ntohl(*reinterpret_cast(setting + 2)); + uint16_t id = NS_decodeN16(setting); + uint32_t value = NS_decodeN32(setting + 2); LOG3(("Settings ID %u, Value %u", id, value)); switch (id) @@@@ -1473,7 +1472,7 @@@@ Http2Session::RecvPushPromise(Http2Sessi } promiseLen = 4; promisedID = - PR_ntohl(*reinterpret_cast(self->mInputFrameBuffer.get() + kFrameHeaderBytes + paddingControlBytes)); + NS_decodeN32(self->mInputFrameBuffer.get() + kFrameHeaderBytes + paddingControlBytes); promisedID &= 0x7fffffff; } @@@@ -1733,11 +1732,11 @@@@ Http2Session::RecvGoAway(Http2Session *s self->mShouldGoAway = true; self->mGoAwayID = - PR_ntohl(*reinterpret_cast(self->mInputFrameBuffer.get() + kFrameHeaderBytes)); + NS_decodeN32(self->mInputFrameBuffer.get() + kFrameHeaderBytes); self->mGoAwayID &= 0x7fffffff; self->mCleanShutdown = true; uint32_t statusCode = - PR_ntohl(*reinterpret_cast(self->mInputFrameBuffer.get() + kFrameHeaderBytes + 4)); + NS_decodeN32(self->mInputFrameBuffer.get() + kFrameHeaderBytes + 4); // Find streams greater than the last-good ID and mark them for deletion // in the mGoAwayStreamsToRestart queue with the GoAwayEnumerator. The @@@@ -1809,7 +1808,7 @@@@ Http2Session::RecvWindowUpdate(Http2Sess } uint32_t delta = - PR_ntohl(*reinterpret_cast(self->mInputFrameBuffer.get() + kFrameHeaderBytes)); + NS_decodeN32(self->mInputFrameBuffer.get() + kFrameHeaderBytes); delta &= 0x7fffffff; LOG3(("Http2Session::RecvWindowUpdate %p len=%d Stream 0x%X.\n", @@@@ -2453,7 +2452,7 @@@@ Http2Session::WriteSegments(nsAHttpSegme // 3 bytes of length, 1 type byte, 1 flag byte, 1 unused bit, 31 bits of ID uint8_t totallyWastedByte = mInputFrameBuffer.get()[0]; - mInputFrameDataSize = PR_ntohs(*reinterpret_cast(mInputFrameBuffer.get() + 1)); + mInputFrameDataSize = NS_decodeN16(mInputFrameBuffer.get() + 1); if (totallyWastedByte || (mInputFrameDataSize > kMaxFrameData)) { LOG3(("Got frame too large 0x%02X%04X", totallyWastedByte, mInputFrameDataSize)); RETURN_SESSION_ERROR(this, PROTOCOL_ERROR); @@@@ -2461,7 +2460,7 @@@@ Http2Session::WriteSegments(nsAHttpSegme mInputFrameType = *reinterpret_cast(mInputFrameBuffer.get() + kFrameLengthBytes); mInputFrameFlags = *reinterpret_cast(mInputFrameBuffer.get() + kFrameLengthBytes + kFrameTypeBytes); mInputFrameID = - PR_ntohl(*reinterpret_cast(mInputFrameBuffer.get() + kFrameLengthBytes + kFrameTypeBytes + kFrameFlagBytes)); + NS_decodeN32(mInputFrameBuffer.get() + kFrameLengthBytes + kFrameTypeBytes + kFrameFlagBytes); mInputFrameID &= 0x7fffffff; mInputFrameDataRead = 0; @ 1.3 log @Another try at proper alignment fixes for http2 sessions @ text @d1 1 a1 1 $NetBSD$ d6 5 a10 5 --- netwerk/protocol/http/Http2Session.cpp.orig 2015-01-23 07:00:06.000000000 +0100 +++ netwerk/protocol/http/Http2Session.cpp 2015-02-13 08:50:19.000000000 +0100 @@@@ -30,7 +30,6 @@@@ #include "nsISSLStatusProvider.h" #include "nsISupportsPriority.h" d16 1 a16 1 @@@@ -1289,7 +1288,7 @@@@ d25 1 a25 1 @@@@ -1320,7 +1319,7 @@@@ d34 1 a34 1 @@@@ -1381,8 +1380,8 @@@@ d45 1 a45 1 @@@@ -1467,7 +1466,7 @@@@ d54 1 a54 1 @@@@ -1702,11 +1701,11 @@@@ d68 1 a68 1 @@@@ -1772,7 +1771,7 @@@@ d77 1 a77 1 @@@@ -2416,7 +2415,7 @@@@ d86 1 a86 1 @@@@ -2424,7 +2423,7 @@@@ @ 1.2 log @Remove a patch, since it causes fallout. Requested by martin (the patch author). Bump PKGREVISION. @ text @d1 1 a1 1 $NetBSD: patch-netwerk_protocol_http_Http2Session.cpp,v 1.1 2015/02/08 09:36:31 martin Exp $ d7 10 a16 3 +++ netwerk/protocol/http/Http2Session.cpp 2015-02-08 09:04:00.000000000 +0100 @@@@ -1288,8 +1288,9 @@@@ if (NS_FAILED(rv)) d19 1 a19 1 - uint32_t newPriorityDependency = d21 1 a21 3 + uint32_t newPriorityDependency; + memcpy(&newPriorityDependency, self->mInputFrameBuffer.get() + kFrameHeaderBytes, 4); + newPriorityDependency = PR_ntohl(newPriorityDependency); d25 1 a25 2 @@@@ -1319,8 +1320,9 @@@@ RETURN_SESSION_ERROR(self, PROTOCOL_ERROR); d28 1 a28 1 - self->mDownstreamRstReason = d30 1 a30 3 + uint32_t tmp; + memcpy(&tmp, self->mInputFrameBuffer.get() + kFrameHeaderBytes, 4); + self->mDownstreamRstReason = PR_ntohl(tmp); d34 1 a34 1 @@@@ -1381,8 +1383,12 @@@@ d40 2 a41 6 + uint16_t id; + memcpy(&id, setting, 2); + id = PR_ntohs(id); + uint32_t value; + memcpy(&value, setting + 2, 4); + value = PR_ntohl(value); d45 1 a45 2 @@@@ -1466,8 +1472,8 @@@@ return rv; d48 1 a48 1 - promisedID = d50 1 a50 2 + memcpy(&promisedID, self->mInputFrameBuffer.get() + kFrameHeaderBytes + paddingControlBytes, 4); + promisedID = PR_ntohl(promisedID); d54 1 a54 2 @@@@ -1701,12 +1707,14 @@@@ } d57 1 a57 1 - self->mGoAwayID = d59 1 a59 3 + uint32_t tmp; + memcpy(&tmp, self->mInputFrameBuffer.get() + kFrameHeaderBytes, 4); + self->mGoAwayID = PR_ntohl(tmp); d62 1 a62 1 - uint32_t statusCode = d64 1 a64 3 + uint32_t statusCode; + memcpy(&statusCode, self->mInputFrameBuffer.get() + kFrameHeaderBytes + 4, 4); + statusCode = PR_ntohl(statusCode); d68 1 a68 2 @@@@ -1771,8 +1779,9 @@@@ RETURN_SESSION_ERROR(self, PROTOCOL_ERROR); d71 1 a71 1 - uint32_t delta = d73 1 a73 3 + uint32_t delta; + memcpy(&delta, self->mInputFrameBuffer.get() + kFrameHeaderBytes, 4); + delta = PR_ntohl(delta); d77 1 a77 19 @@@@ -1964,10 +1973,12 @@@@ RETURN_SESSION_ERROR(self, FRAME_SIZE_ERROR); } - uint32_t maxAge = - PR_ntohl(*reinterpret_cast(self->mInputFrameBuffer.get() + kFrameHeaderBytes)); - uint16_t portRoute = - PR_ntohs(*reinterpret_cast(self->mInputFrameBuffer.get() + kFrameHeaderBytes + 4)); + uint32_t maxAge; + memcpy(&maxAge, self->mInputFrameBuffer.get() + kFrameHeaderBytes, 4); + maxAge = PR_ntohl(maxAge); + uint16_t portRoute; + memcpy(&portRoute, self->mInputFrameBuffer.get() + kFrameHeaderBytes + 4, 2); + portRoute = PR_ntohs(portRoute); uint8_t protoLen = self->mInputFrameBuffer.get()[kFrameHeaderBytes + 6]; LOG3(("Http2Session::RecvAltSvc %p maxAge=%d port=%d protoLen=%d", self, maxAge, portRoute, protoLen)); @@@@ -2415,16 +2426,18 @@@@ } d80 1 a80 1 - uint8_t totallyWastedByte = mInputFrameBuffer.get()[0]; d82 1 a82 3 + const uint8_t *buf = reinterpret_cast(mInputFrameBuffer.get()); + uint8_t totallyWastedByte = buf[0]; + mInputFrameDataSize = buf[1] | (buf[2] << 8); d86 4 a89 4 } - mInputFrameType = *reinterpret_cast(mInputFrameBuffer.get() + kFrameLengthBytes); - mInputFrameFlags = *reinterpret_cast(mInputFrameBuffer.get() + kFrameLengthBytes + kFrameTypeBytes); - mInputFrameID = d91 1 a91 5 + mInputFrameType = buf[kFrameLengthBytes]; + mInputFrameFlags = buf[kFrameLengthBytes + kFrameTypeBytes]; + uint32_t v; + memcpy(&v, &buf[kFrameLengthBytes + kFrameTypeBytes + kFrameFlagBytes], 4); + mInputFrameID = PR_ntohl(v); @ 1.1 log @Make it work on strict alignment architectures again. @ text @d1 1 a1 1 $NetBSD$ @