diff options
Diffstat (limited to 'gentoo/dev-qt/qt/files/trinity-3.5.13.1..3.5.13.2/qt3-2013-04-20_19_02_01-Make-basic-integer-QDataStream-reads-resistant-to-corruption-from-underlying-IO-device-failure-60621ef.patch')
2 files changed, 0 insertions, 133 deletions
diff --git a/gentoo b/gentoo new file mode 160000 +Subproject 644110a847c5911c2eb04eb53c93031740561ef diff --git a/gentoo/dev-qt/qt/files/trinity-3.5.13.1..3.5.13.2/qt3-2013-04-20_19_02_01-Make-basic-integer-QDataStream-reads-resistant-to-corruption-from-underlying-IO-device-failure-60621ef.patch b/gentoo/dev-qt/qt/files/trinity-3.5.13.1..3.5.13.2/qt3-2013-04-20_19_02_01-Make-basic-integer-QDataStream-reads-resistant-to-corruption-from-underlying-IO-device-failure-60621ef.patch deleted file mode 100644 index d8ca2cfce..000000000 --- a/gentoo/dev-qt/qt/files/trinity-3.5.13.1..3.5.13.2/qt3-2013-04-20_19_02_01-Make-basic-integer-QDataStream-reads-resistant-to-corruption-from-underlying-IO-device-failure-60621ef.patch +++ /dev/null @@ -1,133 +0,0 @@ -diff --git a/src/tools/qdatastream.cpp b/src/tools/qdatastream.cpp -index dfdc20e..2cdd5f7 100644 ---- a/src/tools/qdatastream.cpp -+++ b/src/tools/qdatastream.cpp -@@ -544,7 +544,10 @@ QDataStream &QDataStream::operator>>( Q_INT8 &i ) - i = (buf[2] & 0x07)+((buf[1] & 0x07) << 3)+((buf[0] & 0x07) << 6); - } - } else { // data or text -- i = (Q_INT8)dev->getch(); -+ int ret = dev->getch(); -+ if (ret >= 0) { -+ i = (Q_INT8)ret; -+ } - } - return *this; - } -@@ -574,9 +577,10 @@ QDataStream &QDataStream::operator>>( Q_INT16 &i ) - } else { // swap bytes - register uchar *p = (uchar *)(&i); - char b[2]; -- dev->readBlock( b, 2 ); -- *p++ = b[1]; -- *p = b[0]; -+ if (dev->readBlock( b, 2 ) >= 2) { -+ *p++ = b[1]; -+ *p = b[0]; -+ } - } - return *this; - } -@@ -606,11 +610,12 @@ QDataStream &QDataStream::operator>>( Q_INT32 &i ) - } else { // swap bytes - uchar *p = (uchar *)(&i); - char b[4]; -- dev->readBlock( b, 4 ); -- *p++ = b[3]; -- *p++ = b[2]; -- *p++ = b[1]; -- *p = b[0]; -+ if (dev->readBlock( b, 4 ) >= 4) { -+ *p++ = b[3]; -+ *p++ = b[2]; -+ *p++ = b[1]; -+ *p = b[0]; -+ } - } - return *this; - } -@@ -643,15 +648,16 @@ QDataStream &QDataStream::operator>>( Q_INT64 &i ) - } else { // swap bytes - uchar *p = (uchar *)(&i); - char b[8]; -- dev->readBlock( b, 8 ); -- *p++ = b[7]; -- *p++ = b[6]; -- *p++ = b[5]; -- *p++ = b[4]; -- *p++ = b[3]; -- *p++ = b[2]; -- *p++ = b[1]; -- *p = b[0]; -+ if (dev->readBlock( b, 8 ) >= 8) { -+ *p++ = b[7]; -+ *p++ = b[6]; -+ *p++ = b[5]; -+ *p++ = b[4]; -+ *p++ = b[3]; -+ *p++ = b[2]; -+ *p++ = b[1]; -+ *p = b[0]; -+ } - } - return *this; - } -@@ -683,9 +689,11 @@ QDataStream &QDataStream::operator>>( Q_LONG &i ) - } else { // swap bytes - register uchar *p = (uchar *)(&i); - char b[sizeof(Q_LONG)]; -- dev->readBlock( b, sizeof(Q_LONG) ); -- for ( int j = sizeof(Q_LONG); j; ) -- *p++ = b[--j]; -+ if (dev->readBlock( b, sizeof(Q_LONG) ) >= (int)sizeof(Q_LONG)) { -+ for ( int j = sizeof(Q_LONG); j; ) { -+ *p++ = b[--j]; -+ } -+ } - } - return *this; - } -@@ -724,11 +732,12 @@ QDataStream &QDataStream::operator>>( float &f ) - } else { // swap bytes - uchar *p = (uchar *)(&f); - char b[4]; -- dev->readBlock( b, 4 ); -- *p++ = b[3]; -- *p++ = b[2]; -- *p++ = b[1]; -- *p = b[0]; -+ if (dev->readBlock( b, 4 ) >= 4) { -+ *p++ = b[3]; -+ *p++ = b[2]; -+ *p++ = b[1]; -+ *p = b[0]; -+ } - } - return *this; - } -@@ -752,15 +761,16 @@ QDataStream &QDataStream::operator>>( double &f ) - } else { // swap bytes - register uchar *p = (uchar *)(&f); - char b[8]; -- dev->readBlock( b, 8 ); -- *p++ = b[7]; -- *p++ = b[6]; -- *p++ = b[5]; -- *p++ = b[4]; -- *p++ = b[3]; -- *p++ = b[2]; -- *p++ = b[1]; -- *p = b[0]; -+ if (dev->readBlock( b, 8 ) >= 8) { -+ *p++ = b[7]; -+ *p++ = b[6]; -+ *p++ = b[5]; -+ *p++ = b[4]; -+ *p++ = b[3]; -+ *p++ = b[2]; -+ *p++ = b[1]; -+ *p = b[0]; -+ } - } - return *this; - } |