[LyX/master] InsetIndex: make a condition more bullet-proof, a nullptr could be dereferenced.
Richard Kimberly Heck
rikiheck at gmail.com
Sun Jan 8 21:39:49 UTC 2023
On 1/8/23 15:21, Thibaut Cuvelier wrote:
> commit 2d56c01dcfaf04744ab6d854af3965919cc07b82
> Author: Thibaut Cuvelier <tcuvelier at lyx.org>
> Date: Sun Jan 8 22:19:39 2023 +0100
>
> InsetIndex: make a condition more bullet-proof, a nullptr could be dereferenced.
>
> Error noticed by Coverity:
>
> *** CID 382777: Memory - illegal accesses (RETURN_LOCAL)
> /home/lasgoutt/src/lyx/coverity/lyx/src/insets/InsetIndex.cpp: 1866 in _ZNK3lyx15InsetPrintIndex5xhtmlB5cxx11ERNS_9XMLStreamERKNS_12OutputParamsE()
> 1860
> 1861 // Collect the index entries in a form we can use them.
> 1862 vector<IndexEntry> entries;
> 1863 const docstring & indexType = params().getParamOr("type", from_ascii("idx"));
> 1864 for (const TocItem& item : *toc) {
> 1865 const auto* inset = static_cast<const InsetIndex*>(&(item.dit().inset()));
> >>> CID 382777: Memory - illegal accesses (RETURN_LOCAL)
> >>> Using "indexType", which points to an out-of-scope temporary variable of type "lyx::docstring const".
Isn't the warning rather that getParamOr could return a reference to
'from_ascii("idx")', which coverity is saying is now out of scope? Is
that OK? Maybe it wants us to declare that separately?
Riki
More information about the lyx-devel
mailing list