diff options
author | Thiago Macieira <thiago.macieira@intel.com> | 2020-11-07 09:56:49 -0800 |
---|---|---|
committer | Volker Hilsheimer <volker.hilsheimer@qt.io> | 2020-12-06 07:51:19 +0000 |
commit | 638171eb10cfb186a6c47ec052a3b0c5b6449386 (patch) | |
tree | 203ab7970becd15c8edaae99ec708af043672f15 /src/corelib/serialization/qcborvalue_p.h | |
parent | 9a55f40937d037d06e00b09465d8dad0554692fc (diff) |
QCborValue: avoid allocating result if data is insufficient
Similar to the previous commit which applied to QCborStreamReader, don't
allocate too much data before checking that the stream actually has that
much.
Pick-to: 5.15 6.0
Fixes: QTBUG-88256
Change-Id: I7b9b97ae9b32412abdc6fffd16454b7568a063ba
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Diffstat (limited to 'src/corelib/serialization/qcborvalue_p.h')
-rw-r--r-- | src/corelib/serialization/qcborvalue_p.h | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/corelib/serialization/qcborvalue_p.h b/src/corelib/serialization/qcborvalue_p.h index d68d44e7be..5c8f244ad8 100644 --- a/src/corelib/serialization/qcborvalue_p.h +++ b/src/corelib/serialization/qcborvalue_p.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2018 Intel Corporation. +** Copyright (C) 2020 Intel Corporation. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of the QtCore module of the Qt Toolkit. @@ -53,6 +53,10 @@ #include "qcborvalue.h" +#if QT_CONFIG(cborstreamreader) +# include "qcborstreamreader.h" +#endif + #include <private/qglobal_p.h> #include <private/qstringconverter_p.h> @@ -414,9 +418,11 @@ public: elements.remove(idx); } - void decodeValueFromCbor(QCborStreamReader &reader, int remainiingStackDepth); +#if QT_CONFIG(cborstreamreader) + void decodeValueFromCbor(QCborStreamReader &reader, int remainingStackDepth); void decodeStringFromCbor(QCborStreamReader &reader); static inline void setErrorInReader(QCborStreamReader &reader, QCborError error); +#endif }; QT_END_NAMESPACE |