[LyX/master] InsetIndex: make a condition more bullet-proof, a nullptr could be dereferenced.

Jean-Marc Lasgouttes lasgouttes at lyx.org
Sun Jan 8 21:46:21 UTC 2023


Le 08/01/2023 à 22:39, Richard Kimberly Heck a écrit :
> 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?


That's my reading too.

JMarc



More information about the lyx-devel mailing list