Opened 7 years ago

#5556 new defect

Undefined behavior in OpenModelicaScriptingAPIQt.cpp

Reported by: Anatoly Trosinenko Owned by: Adrian Pop
Priority: high Milestone: Future
Component: Susan (Templates) Version: v1.14.0-dev-nightly
Keywords: Cc:

Description

According to ​Clang Static Analyzer reports, the OpenModelicaScriptingAPIQt.cpp file contains lots of exception handling triggering Undefined Behavior such as ​this one.

On the first glance, it looks like harmless rethrowing, but OMEdit ​contains the code that handles this throwException signal with showException slot. This suggests that it is not a noreturn function, so the execution flows to the line

responseLog.append(result ? "true" : "false");

This, again, looks harmless (just slightly misleading random true or false in log), but precisely this pattern was observed as ​crasing the program instead of just showing garbage: the compiler spotted, that

strlen(flag ? "true" : "false") == 1 - flag

I have tried to rewrite this file but have not succeeded: looks like one bootstrapping iteration was not enough in my case... Though, there are examples of commits successfully changing this template. This shows some non-triviality of contributing to this file.

Change History (0)

Note: See TracTickets for help on using tickets.