Kaydet (Commit) 61439adc authored tarafından Lionel Elie Mamane's avatar Lionel Elie Mamane

getAny() is not a safe default, it assumes there is actually an Any

at *m_aValue.m_pValue.
But there could not even be a pointer there, e.g. if m_aValue.m_nIntXX is in use.
Then the pointer dereference usually leads to a crash.
Can e.g. be reproduced by calling getBytes() on an integer column of a RowSet.

Change-Id: Ib5361d838d2869142fd797d4e3454e2562ea7acf
üst 5df77f0d
...@@ -964,7 +964,7 @@ Any ORowSetValue::makeAny() const ...@@ -964,7 +964,7 @@ Any ORowSetValue::makeAny() const
break; break;
default: default:
SAL_WARN( "connectivity.commontools","ORowSetValue::makeAny(): UNSPUPPORTED TYPE!"); SAL_WARN( "connectivity.commontools","ORowSetValue::makeAny(): UNSPUPPORTED TYPE!");
rValue = getAny(); rValue = makeAny();
break; break;
} }
} }
...@@ -1049,7 +1049,7 @@ OUString ORowSetValue::getString( ) const ...@@ -1049,7 +1049,7 @@ OUString ORowSetValue::getString( ) const
break; break;
default: default:
{ {
Any aValue = getAny(); Any aValue = makeAny();
aValue >>= aRet; aValue >>= aRet;
break; break;
} }
...@@ -1120,7 +1120,7 @@ bool ORowSetValue::getBool() const ...@@ -1120,7 +1120,7 @@ bool ORowSetValue::getBool() const
break; break;
default: default:
{ {
Any aValue = getAny(); Any aValue = makeAny();
aValue >>= bRet; aValue >>= bRet;
break; break;
} }
...@@ -1191,7 +1191,7 @@ sal_Int8 ORowSetValue::getInt8() const ...@@ -1191,7 +1191,7 @@ sal_Int8 ORowSetValue::getInt8() const
break; break;
default: default:
{ {
Any aValue = getAny(); Any aValue = makeAny();
aValue >>= nRet; aValue >>= nRet;
break; break;
} }
...@@ -1262,7 +1262,7 @@ sal_uInt8 ORowSetValue::getUInt8() const ...@@ -1262,7 +1262,7 @@ sal_uInt8 ORowSetValue::getUInt8() const
break; break;
default: default:
{ {
Any aValue = getAny(); Any aValue = makeAny();
aValue >>= nRet; aValue >>= nRet;
break; break;
} }
...@@ -1334,7 +1334,7 @@ sal_Int16 ORowSetValue::getInt16() const ...@@ -1334,7 +1334,7 @@ sal_Int16 ORowSetValue::getInt16() const
break; break;
default: default:
{ {
Any aValue = getAny(); Any aValue = makeAny();
aValue >>= nRet; aValue >>= nRet;
break; break;
} }
...@@ -1405,7 +1405,7 @@ sal_uInt16 ORowSetValue::getUInt16() const ...@@ -1405,7 +1405,7 @@ sal_uInt16 ORowSetValue::getUInt16() const
break; break;
default: default:
{ {
Any aValue = getAny(); Any aValue = makeAny();
aValue >>= nRet; aValue >>= nRet;
break; break;
} }
...@@ -1478,7 +1478,7 @@ sal_Int32 ORowSetValue::getInt32() const ...@@ -1478,7 +1478,7 @@ sal_Int32 ORowSetValue::getInt32() const
break; break;
default: default:
{ {
Any aValue = getAny(); Any aValue = makeAny();
aValue >>= nRet; aValue >>= nRet;
break; break;
} }
...@@ -1551,7 +1551,7 @@ sal_uInt32 ORowSetValue::getUInt32() const ...@@ -1551,7 +1551,7 @@ sal_uInt32 ORowSetValue::getUInt32() const
break; break;
default: default:
{ {
Any aValue = getAny(); Any aValue = makeAny();
aValue >>= nRet; aValue >>= nRet;
break; break;
} }
...@@ -1624,7 +1624,7 @@ sal_Int64 ORowSetValue::getLong() const ...@@ -1624,7 +1624,7 @@ sal_Int64 ORowSetValue::getLong() const
break; break;
default: default:
{ {
Any aValue = getAny(); Any aValue = makeAny();
aValue >>= nRet; aValue >>= nRet;
break; break;
} }
...@@ -1697,7 +1697,7 @@ sal_uInt64 ORowSetValue::getULong() const ...@@ -1697,7 +1697,7 @@ sal_uInt64 ORowSetValue::getULong() const
break; break;
default: default:
{ {
Any aValue = getAny(); Any aValue = makeAny();
aValue >>= nRet; aValue >>= nRet;
break; break;
} }
...@@ -1774,7 +1774,7 @@ float ORowSetValue::getFloat() const ...@@ -1774,7 +1774,7 @@ float ORowSetValue::getFloat() const
break; break;
default: default:
{ {
Any aValue = getAny(); Any aValue = makeAny();
aValue >>= nRet; aValue >>= nRet;
break; break;
} }
...@@ -1850,7 +1850,7 @@ double ORowSetValue::getDouble() const ...@@ -1850,7 +1850,7 @@ double ORowSetValue::getDouble() const
break; break;
default: default:
{ {
Any aValue = getAny(); Any aValue = makeAny();
aValue >>= nRet; aValue >>= nRet;
break; break;
} }
...@@ -1921,7 +1921,7 @@ Sequence<sal_Int8> ORowSetValue::getSequence() const ...@@ -1921,7 +1921,7 @@ Sequence<sal_Int8> ORowSetValue::getSequence() const
break; break;
default: default:
{ {
Any aValue = getAny(); Any aValue = makeAny();
aValue >>= aSeq; aValue >>= aSeq;
break; break;
} }
...@@ -2024,7 +2024,7 @@ Sequence<sal_Int8> ORowSetValue::getSequence() const ...@@ -2024,7 +2024,7 @@ Sequence<sal_Int8> ORowSetValue::getSequence() const
break; break;
default: default:
{ {
Any aAnyValue = getAny(); Any aAnyValue = makeAny();
aAnyValue >>= aValue; aAnyValue >>= aValue;
break; break;
} }
...@@ -2076,7 +2076,7 @@ Sequence<sal_Int8> ORowSetValue::getSequence() const ...@@ -2076,7 +2076,7 @@ Sequence<sal_Int8> ORowSetValue::getSequence() const
break; break;
default: default:
{ {
Any aAnyValue = getAny(); Any aAnyValue = makeAny();
aAnyValue >>= aValue; aAnyValue >>= aValue;
break; break;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment