CESNET / ipfixcol

IPFIXcol is an implementation of an IPFIX (RFC 7011) collector
Other
64 stars 37 forks source link

NetFlow v9 traffic from nProbe causes segfault (FastBit storage) #14

Closed ghost closed 9 years ago

ghost commented 9 years ago

When exporting flow data using NetFlow v9 from nProbe,* IPFIXcol sooner or later always crashes. Valgrind reports the following:

==3922== Invalid read of size 8
==3922==    at 0x690D35D: element::get_part_info() (in /usr/local/share/ipfixcol/plugins/ipfixcol-fastbit-output.so)
==3922==    by 0x690AB80: template_table::update_part(std::string) (in /usr/local/share/ipfixcol/plugins/ipfixcol-fastbit-output.so)
==3922==    by 0x690B586: template_table::flush(std::string) (in /usr/local/share/ipfixcol/plugins/ipfixcol-fastbit-output.so)
==3922==    by 0x6901DB5: flush_data(fastbit_config*, unsigned int, std::map<unsigned short, template_table*, std::less<unsigned short>, std::allocator<std::pair<unsigned short const, template_table*> > >*, bool) (in /usr/local/share/ipfixcol/plugins/ipfixcol-fastbit-output.so)
==3922==    by 0x6903BF2: store_packet (in /usr/local/share/ipfixcol/plugins/ipfixcol-fastbit-output.so)
==3922==    by 0x405578: storage_plugin_thread (data_manager.c:108)
==3922==    by 0x53A9181: start_thread (pthread_create.c:312)
==3922==    by 0x56B9EFC: clone (clone.S:111)
==3922==  Address 0x18032bb88 is not stack'd, malloc'd or (recently) free'd
==3922== 
==3922== 
==3922== Process terminating with default action of signal 11 (SIGSEGV)
==3922==  Access not within mapped region at address 0x18032BB88
==3922==    at 0x690D35D: element::get_part_info() (in /usr/local/share/ipfixcol/plugins/ipfixcol-fastbit-output.so)
==3922==    by 0x690AB80: template_table::update_part(std::string) (in /usr/local/share/ipfixcol/plugins/ipfixcol-fastbit-output.so)
==3922==    by 0x690B586: template_table::flush(std::string) (in /usr/local/share/ipfixcol/plugins/ipfixcol-fastbit-output.so)
==3922==    by 0x6901DB5: flush_data(fastbit_config*, unsigned int, std::map<unsigned short, template_table*, std::less<unsigned short>, std::allocator<std::pair<unsigned short const, template_table*> > >*, bool) (in /usr/local/share/ipfixcol/plugins/ipfixcol-fastbit-output.so)
==3922==    by 0x6903BF2: store_packet (in /usr/local/share/ipfixcol/plugins/ipfixcol-fastbit-output.so)
==3922==    by 0x405578: storage_plugin_thread (data_manager.c:108)
==3922==    by 0x53A9181: start_thread (pthread_create.c:312)
==3922==    by 0x56B9EFC: clone (clone.S:111)
==3922==  If you believe this happened as a result of a stack
==3922==  overflow in your program's main thread (unlikely but
==3922==  possible), you can try to increase the size of the
==3922==  main thread stack using the --main-stacksize= flag.
==3922==  The main thread stack size used in this run was 8388608.
ssing data sets...

My conclusion is that it is related to the FastBit storage plugin and to flushing/writing the data to disk. I've prepared a short trace for you that triggers the behavior. Please contact me at kirc&secdorks.net to get the trace.

*) Although I mention nProbe specifically in this ticket, I cannot say whether the issue is only triggered by traffic from nProbe. I've used the following command for exporting the traffic:

nprobe -G -V9 -T "%IPV4_SRC_ADDR %IPV4_DST_ADDR %IPV4_NEXT_HOP %INPUT_SNMP %OUTPUT_SNMP %IN_PKTS %IN_BYTES %FIRST_SWITCHED %LAST_SWITCHED %L4_SRC_PORT %L4_DST_PORT %TCP_FLAGS %PROTOCOL %SRC_TOS %SRC_AS %DST_AS %IPV4_SRC_MASK %IPV4_DST_MASK %HTTP_HOST %BIFLOW_DIRECTION %HTTP_URL" -n 127.0.0.1:3055 -i eth0
ghost commented 9 years ago

Is there any news on this issue? Did you manage to reproduce it with the supplied trace?

denji commented 9 years ago

export CFLAGS="-Wl,-z,relro,-z,now -fstack-protector --param=ssp-buffer-size=4 -pie -fPIC" export CPPFLAGS=$CFLAGS export CXXFLAGS=$CFLAGS

[base/src/config.c:325]: (warning) Return value of function strtol() is not used.
[base/src/input/sctp/sflow.c:5]: (error) Invalid number of character ({) when these macros are defined: '__cplusplus'.
[base/src/input/tcp/sflow.c:5]: (error) Invalid number of character ({) when these macros are defined: '__cplusplus'.
[base/src/ipfix_message.c:104]: (portability) 'msg' is of type 'void *'. When using void pointers in calculations, the behaviour is undefined.
[base/src/preprocessor.c:597]: (warning) Assignment of function parameter has no effect outside the function. Did you forget dereferencing it?
[base/src/output_manager.c:452]: (warning) Suspicious usage of 'sizeof' with a numeric constant as parameter.
[base/src/output_manager.c:483]: (error) Memory leak: thread
[base/src/storage/forwarding/forwarding.c:535]: (portability) 'packet' is of type 'void *'. When using void pointers in calculations, the behaviour is undefined.
[base/src/storage/forwarding/forwarding.c:542]: (portability) 'packet' is of type 'void *'. When using void pointers in calculations, the behaviour is undefined.
[base/src/storage/forwarding/forwarding.c:549]: (portability) 'packet' is of type 'void *'. When using void pointers in calculations, the behaviour is undefined.
[base/src/template_manager.c:597]: (warning) Assignment of function parameter has no effect outside the function. Did you forget dereferencing it?
[base/src/template_manager.c:839]: (warning) Assignment of function parameter has no effect outside the function. Did you forget dereferencing it?
[base/src/storage/forwarding/forwarding.c:854]: (error) Common realloc mistake: 'templ_set' nulled but not freed upon failure
[base/src/storage/forwarding/forwarding.c:858]: (error) Common realloc mistake: 'option_set' nulled but not freed upon failure
[base/src/utils/ipfixsend/reader.c:116]: (error) Common realloc mistake: 'pkt' nulled but not freed upon failure
[base/src/utils/ipfixsend/reader.c:174]: (error) Common realloc mistake: 'packets' nulled but not freed upon failure
[base/src/utils/utils.c:219]: (error) Common realloc mistake: 'input_files' nulled but not freed upon failure
[base/tests/rbuffer/rbuffer_test.c:76]: (warning) %i in format string (no. 3) requires 'int' but the argument type is 'unsigned int'.
[base/tests/input_plugin/input_test.c:503]: (error) Resource leak: pc
[base/src/input/udp/sflow.c:5]: (error) Invalid number of character ({) when these macros are defined: '__cplusplus'.
[plugins/input/nfdump/nfinput.c:562]: (portability) 'packet' is of type 'void *'. When using void pointers in calculations, the behaviour is undefined.
[plugins/input/nfdump/nfinput.c:573]: (portability) 'packet' is of type 'void *'. When using void pointers in calculations, the behaviour is undefined.
[plugins/input/nfdump/nfinput.c:582]: (portability) 'packet' is of type 'void *'. When using void pointers in calculations, the behaviour is undefined.
[plugins/input/nfdump/nfinput.c:583]: (portability) 'packet' is of type 'void *'. When using void pointers in calculations, the behaviour is undefined.
[plugins/intermediate/profiler/profile_tree/Profile.cpp:51]: (warning) Member variable 'Profile::m_parent' is not initialized in the constructor.
[plugins/storage/fastbit/fastbit.cpp:185]: (performance) Prefer prefix ++/-- operators for non-primitive types.
[plugins/storage/fastbit/fastbit.cpp:477]: (performance) Prefer prefix ++/-- operators for non-primitive types.
[plugins/storage/fastbit/fastbit.cpp:493]: (performance) Prefer prefix ++/-- operators for non-primitive types.
[plugins/storage/fastbit/fastbit.cpp:542]: (performance) Prefer prefix ++/-- operators for non-primitive types.
[plugins/storage/fastbit/fastbit.cpp:548]: (performance) Prefer prefix ++/-- operators for non-primitive types.
[plugins/storage/fastbit/fastbit_element.cpp:279]: (error) Common realloc mistake: '_buffer' nulled but not freed upon failure
[plugins/storage/fastbit/fastbit_table.cpp:72]: (warning) %u in format string (no. 1) requires 'unsigned int' but the argument type is 'int'.
[plugins/storage/fastbit_compression/configuration.cpp:333] -> [plugins/storage/fastbit_compression/configuration.cpp:339]: (warning) Possible null pointer dereference: conf - otherwise it is redundant to check it against null.
[plugins/storage/fastbit_compression/configuration.cpp:26]: (portability) scanf without field width limits can crash with huge input data on some versions of libc.
[plugins/storage/fastbit_compression/configuration.cpp:256]: (portability) scanf without field width limits can crash with huge input data on some versions of libc.
[plugins/storage/fastbit_compression/configuration.cpp:271]: (portability) scanf without field width limits can crash with huge input data on some versions of libc.
[plugins/storage/fastbit_compression/configuration.cpp:283]: (portability) scanf without field width limits can crash with huge input data on some versions of libc.
[plugins/storage/fastbit_compression/database.cpp:481]: (warning) %lu in format string (no. 4) requires 'unsigned long' but the argument type is 'size_t {aka unsigned long}'.
[plugins/storage/fastbit_compression/configuration.cpp:333]: (performance) Prefer prefix ++/-- operators for non-primitive types.
[plugins/storage/fastbit_compression/database.cpp:641]: (portability) scanf without field width limits can crash with huge input data on some versions of libc.
[plugins/storage/fastbit_compression/database.cpp:646]: (portability) scanf without field width limits can crash with huge input data on some versions of libc.
[plugins/storage/fastbit_compression/database.cpp:651]: (portability) scanf without field width limits can crash with huge input data on some versions of libc.
[plugins/storage/fastbit_compression/database.cpp:144]: (performance) Prefer prefix ++/-- operators for non-primitive types.
[plugins/storage/fastbit_compression/database.cpp:157]: (performance) Prefer prefix ++/-- operators for non-primitive types.
[plugins/storage/fastbit_compression/ipfixcol_fastbit.cpp:496]: (performance) Prefer prefix ++/-- operators for non-primitive types.
[plugins/storage/fastbit_compression/ipfixcol_fastbit.cpp:513]: (performance) Prefer prefix ++/-- operators for non-primitive types.
[plugins/storage/json/Storage.cpp:68]: (warning) Member variable 'Storage::addr6' is not initialized in the constructor.
[plugins/storage/json/Storage.cpp:68]: (warning) Member variable 'Storage::addrMac' is not initialized in the constructor.
[plugins/storage/json/Storage.cpp:68]: (warning) Member variable 'Storage::offset' is not initialized in the constructor.
[plugins/storage/json/Storage.cpp:68]: (warning) Member variable 'Storage::length' is not initialized in the constructor.
[plugins/storage/json/Storage.cpp:68]: (warning) Member variable 'Storage::enterprise' is not initialized in the constructor.
[plugins/storage/fastbit/pugixml/pugixml.cpp:2105]: (warning) Assignment of function parameter has no effect outside the function. Did you forget dereferencing it?
[plugins/storage/fastbit/pugixml/pugixml.cpp:2249] -> [plugins/storage/fastbit/pugixml/pugixml.cpp:2247]: (warning) Possible null pointer dereference: a - otherwise it is redundant to check it against null.
[plugins/storage/fastbit/pugixml/pugixml.cpp:2283] -> [plugins/storage/fastbit/pugixml/pugixml.cpp:2278]: (warning) Possible null pointer dereference: s - otherwise it is redundant to check it against null.
[plugins/storage/fastbit/pugixml/pugixml.cpp:4492]: (warning) Member variable 'xml_document::_memory' is not initialized in the constructor.
[plugins/storage/fastbit/pugixml/pugixml.cpp:9197]: (warning) Member variable 'xpath_variable::_type' is not initialized in the constructor.
[plugins/storage/fastbit/pugixml/pugixml.cpp:9197]: (warning) Member variable 'xpath_variable::_next' is not initialized in the constructor.
[plugins/storage/fastbit/pugixml/pugixml.cpp:2621]: (warning) Member variable 'xml_buffered_writer::buffer' is not initialized in the constructor.
[plugins/storage/fastbit/pugixml/pugixml.cpp:2621]: (warning) Member variable 'xml_buffered_writer::scratch' is not initialized in the constructor.
[plugins/storage/fastbit/pugixml/pugixml.cpp:5987]: (warning) Member variable 'xpath_variable_boolean::name' is not initialized in the constructor.
[plugins/storage/fastbit/pugixml/pugixml.cpp:5997]: (warning) Member variable 'xpath_variable_number::name' is not initialized in the constructor.
[plugins/storage/fastbit/pugixml/pugixml.cpp:6007]: (warning) Member variable 'xpath_variable_string::name' is not initialized in the constructor.
[plugins/storage/nfdump/extensions.cpp:53]: (warning) Member variable 'Extension::needId_' is not initialized in the constructor.
[plugins/storage/nfdump/nfstore.cpp:271]: (performance) Prefer prefix ++/-- operators for non-primitive types.
[plugins/storage/nfdump/nfstore.cpp:311]: (performance) Prefer prefix ++/-- operators for non-primitive types.
[plugins/storage/json/pugixml/pugixml.cpp:2105]: (warning) Assignment of function parameter has no effect outside the function. Did you forget dereferencing it?
[plugins/storage/json/pugixml/pugixml.cpp:2249] -> [plugins/storage/json/pugixml/pugixml.cpp:2247]: (warning) Possible null pointer dereference: a - otherwise it is redundant to check it against null.
[plugins/storage/json/pugixml/pugixml.cpp:2283] -> [plugins/storage/json/pugixml/pugixml.cpp:2278]: (warning) Possible null pointer dereference: s - otherwise it is redundant to check it against null.
[plugins/storage/json/pugixml/pugixml.cpp:4492]: (warning) Member variable 'xml_document::_memory' is not initialized in the constructor.
[plugins/storage/json/pugixml/pugixml.cpp:9197]: (warning) Member variable 'xpath_variable::_type' is not initialized in the constructor.
[plugins/storage/json/pugixml/pugixml.cpp:9197]: (warning) Member variable 'xpath_variable::_next' is not initialized in the constructor.
[plugins/storage/json/pugixml/pugixml.cpp:2621]: (warning) Member variable 'xml_buffered_writer::buffer' is not initialized in the constructor.
[plugins/storage/json/pugixml/pugixml.cpp:2621]: (warning) Member variable 'xml_buffered_writer::scratch' is not initialized in the constructor.
[plugins/storage/json/pugixml/pugixml.cpp:5987]: (warning) Member variable 'xpath_variable_boolean::name' is not initialized in the constructor.
[plugins/storage/json/pugixml/pugixml.cpp:5997]: (warning) Member variable 'xpath_variable_number::name' is not initialized in the constructor.
[plugins/storage/json/pugixml/pugixml.cpp:6007]: (warning) Member variable 'xpath_variable_string::name' is not initialized in the constructor.
[plugins/storage/nfdump/record_map.cpp:436]: (error) Common realloc mistake: 'ids_' nulled but not freed upon failure
[plugins/storage/nfdump/record_map.cpp:440]: (error) Common realloc mistake: 'idsSize_' nulled but not freed upon failure
[plugins/storage/nfdump/record_map.cpp:353]: (performance) Prefer prefix ++/-- operators for non-primitive types.
[plugins/storage/nfdump/pugixml/pugixml.cpp:2105]: (warning) Assignment of function parameter has no effect outside the function. Did you forget dereferencing it?
[plugins/storage/nfdump/pugixml/pugixml.cpp:2249] -> [plugins/storage/nfdump/pugixml/pugixml.cpp:2247]: (warning) Possible null pointer dereference: a - otherwise it is redundant to check it against null.
[plugins/storage/nfdump/pugixml/pugixml.cpp:2283] -> [plugins/storage/nfdump/pugixml/pugixml.cpp:2278]: (warning) Possible null pointer dereference: s - otherwise it is redundant to check it against null.
[plugins/storage/nfdump/pugixml/pugixml.cpp:4492]: (warning) Member variable 'xml_document::_memory' is not initialized in the constructor.
[plugins/storage/nfdump/pugixml/pugixml.cpp:9197]: (warning) Member variable 'xpath_variable::_type' is not initialized in the constructor.
[plugins/storage/nfdump/pugixml/pugixml.cpp:9197]: (warning) Member variable 'xpath_variable::_next' is not initialized in the constructor.
[plugins/storage/nfdump/pugixml/pugixml.cpp:2621]: (warning) Member variable 'xml_buffered_writer::buffer' is not initialized in the constructor.
[plugins/storage/nfdump/pugixml/pugixml.cpp:2621]: (warning) Member variable 'xml_buffered_writer::scratch' is not initialized in the constructor.
[plugins/storage/nfdump/pugixml/pugixml.cpp:5987]: (warning) Member variable 'xpath_variable_boolean::name' is not initialized in the constructor.
[plugins/storage/nfdump/pugixml/pugixml.cpp:5997]: (warning) Member variable 'xpath_variable_number::name' is not initialized in the constructor.
[plugins/storage/nfdump/pugixml/pugixml.cpp:6007]: (warning) Member variable 'xpath_variable_string::name' is not initialized in the constructor.
[plugins/storage/postgres/postgres_output.c:278] -> [plugins/storage/postgres/postgres_output.c:282]: (performance) Buffer 'sql_command' is being written before its old content has been used.
[plugins/storage/postgres/postgres_output.c:650] -> [plugins/storage/postgres/postgres_output.c:654]: (performance) Buffer 'string' is being written before its old content has been used.
[plugins/storage/postgres/postgres_output.c:423]: (error) Common realloc mistake: 'sql_command' nulled but not freed upon failure
[plugins/storage/unirec/unirec.c:1015]: (error) Memory leak: ifc_params
[plugins/storage/unirec/unirec.c:1015]: (error) Memory leak: ifc_types
[plugins/storage/unirec/unirec.c:1015]: (error) Memory leak: ifc_timeout
[plugins/storage/unirec/unirec.c:1015]: (error) Memory leak: ifc_format
[plugins/storage/unirec/unirec.c:1015]: (error) Memory leak: ifc_buff_switch
[plugins/storage/unirec/unirec.c:1015]: (error) Memory leak: ifc_buff_timeout
[plugins/storage/unirec/unirec.c:670]: (error) Common realloc mistake: 'currentField' nulled but not freed upon failure
[plugins/storage/unirec/unirec.c:1047]: (error) Common realloc mistake: 'ifc_params' nulled but not freed upon failure
[plugins/storage/unirec/unirec.c:1048]: (error) Common realloc mistake: 'ifc_types' nulled but not freed upon failure
[plugins/storage/unirec/unirec.c:1049]: (error) Common realloc mistake: 'ifc_timeout' nulled but not freed upon failure
[plugins/storage/unirec/unirec.c:1050]: (error) Common realloc mistake: 'ifc_format' nulled but not freed upon failure
[plugins/storage/unirec/unirec.c:1051]: (error) Common realloc mistake: 'ifc_buff_switch' nulled but not freed upon failure
[plugins/storage/unirec/unirec.c:1052]: (error) Common realloc mistake: 'ifc_buff_timeout' nulled but not freed upon failure
[plugins/storage/unirec/unirec.c:1093]: (error) Common realloc mistake: 'ifc_types' nulled but not freed upon failure
[tools/fbitdump/3rdparty/pugixml.cpp:2105]: (warning) Assignment of function parameter has no effect outside the function. Did you forget dereferencing it?
[tools/fbitdump/3rdparty/pugixml.cpp:2249] -> [tools/fbitdump/3rdparty/pugixml.cpp:2247]: (warning) Possible null pointer dereference: a - otherwise it is redundant to check it against null.
[tools/fbitdump/3rdparty/pugixml.cpp:2283] -> [tools/fbitdump/3rdparty/pugixml.cpp:2278]: (warning) Possible null pointer dereference: s - otherwise it is redundant to check it against null.
[tools/fbitdump/3rdparty/pugixml.cpp:4492]: (warning) Member variable 'xml_document::_memory' is not initialized in the constructor.
[tools/fbitdump/3rdparty/pugixml.cpp:9197]: (warning) Member variable 'xpath_variable::_type' is not initialized in the constructor.
[tools/fbitdump/3rdparty/pugixml.cpp:9197]: (warning) Member variable 'xpath_variable::_next' is not initialized in the constructor.
[tools/fbitdump/3rdparty/pugixml.cpp:2621]: (warning) Member variable 'xml_buffered_writer::buffer' is not initialized in the constructor.
[tools/fbitdump/3rdparty/pugixml.cpp:2621]: (warning) Member variable 'xml_buffered_writer::scratch' is not initialized in the constructor.
[tools/fbitdump/3rdparty/pugixml.cpp:5987]: (warning) Member variable 'xpath_variable_boolean::name' is not initialized in the constructor.
[tools/fbitdump/3rdparty/pugixml.cpp:5997]: (warning) Member variable 'xpath_variable_number::name' is not initialized in the constructor.
[tools/fbitdump/3rdparty/pugixml.cpp:6007]: (warning) Member variable 'xpath_variable_string::name' is not initialized in the constructor.
[tools/fbitdump/src/Table.h:206]: (performance) Function parameter 'columns' should be passed by reference.
[tools/fbitdump/src/Table.h:223]: (performance) Function parameter 'columns' should be passed by reference.
[tools/fbitdump/src/Table.h:223]: (performance) Function parameter 'names' should be passed by reference.
[tools/fbitdump/src/Column.cpp:100]: (performance) Prefer prefix ++/-- operators for non-primitive types.
[tools/fbitdump/src/Configuration.cpp:646]: (performance) Prefer prefix ++/-- operators for non-primitive types.
[tools/fbitdump/src/Configuration.cpp:664]: (performance) Prefer prefix ++/-- operators for non-primitive types.
[tools/fbitdump/src/Configuration.cpp:712]: (performance) Prefer prefix ++/-- operators for non-primitive types.
[tools/fbitdump/src/Configuration.cpp:1060]: (performance) Prefer prefix ++/-- operators for non-primitive types.
[tools/fbitdump/src/Configuration.cpp:1107]: (performance) Prefer prefix ++/-- operators for non-primitive types.
[tools/fbitdump/src/DefaultPlugin.cpp:136]: (warning) Comparison of a boolean with an integer.
[tools/fbitdump/src/DefaultPlugin.cpp:166]: (warning) Comparison of a boolean with an integer.
[tools/fbitdump/src/IndexManager.cpp:52]: (performance) Possible inefficient checking for 'indexes' emptiness.
[tools/fbitdump/src/IndexManager.cpp:70]: (performance) Possible inefficient checking for 'indexes' emptiness.
[tools/fbitdump/src/IndexManager.cpp:51]: (performance) Prefer prefix ++/-- operators for non-primitive types.
[tools/fbitdump/src/IndexManager.cpp:55]: (performance) Prefer prefix ++/-- operators for non-primitive types.
[tools/fbitdump/src/IndexManager.cpp:68]: (performance) Prefer prefix ++/-- operators for non-primitive types.
[tools/fbitdump/src/IndexManager.cpp:75]: (performance) Prefer prefix ++/-- operators for non-primitive types.
[tools/fbitdump/src/Filter.cpp:1024]: (performance) Variable 'filterString' is assigned in constructor body. Consider performing initialization in initialization list.
[tools/fbitdump/src/Filter.cpp:550]: (performance) Prefer prefix ++/-- operators for non-primitive types.
[tools/fbitdump/src/Table.cpp:67]: (performance) Function parameter 'columns' should be passed by reference.
[tools/fbitdump/src/Table.cpp:106]: (performance) Function parameter 'columns' should be passed by reference.
[tools/fbitdump/src/Table.cpp:106]: (performance) Function parameter 'names' should be passed by reference.
[tools/fbitdump/src/Table.cpp:160]: (performance) Passing the result of c_str() to a function that takes std::string as argument no. 1 is slow and redundant.
[tools/fbitdump/src/Table.cpp:205]: (performance) Passing the result of c_str() to a function that takes std::string as argument no. 1 is slow and redundant.
[tools/fbitdump/src/Table.cpp:228]: (performance) Passing the result of c_str() to a function that takes std::string as argument no. 1 is slow and redundant.
[tools/fbitdump/src/Table.cpp:248]: (performance) Passing the result of c_str() to a function that takes std::string as argument no. 1 is slow and redundant.
[tools/fbitdump/src/Table.cpp:309]: (performance) Prefer prefix ++/-- operators for non-primitive types.
[tools/fbitdump/src/TableManagerCursor.cpp:92]: (performance) Prefer prefix ++/-- operators for non-primitive types.
[tools/fbitdump/src/TableManagerCursor.cpp:211]: (performance) Prefer prefix ++/-- operators for non-primitive types.
[tools/fbitdump/src/TableManager.cpp:142]: (performance) Prefer prefix ++/-- operators for non-primitive types.
[tools/fbitdump/src/TableManager.cpp:156]: (performance) Prefer prefix ++/-- operators for non-primitive types.
[tools/fbitdump/src/TableManager.cpp:171]: (performance) Prefer prefix ++/-- operators for non-primitive types.
[tools/fbitdump/src/TableManager.cpp:289]: (performance) Prefer prefix ++/-- operators for non-primitive types.
[tools/fbitdump/src/TableManager.cpp:339]: (performance) Prefer prefix ++/-- operators for non-primitive types.
[tools/fbitdump/src/TableManager.cpp:408]: (performance) Prefer prefix ++/-- operators for non-primitive types.
[tools/fbitdump/src/TableManager.cpp:413]: (performance) Prefer prefix ++/-- operators for non-primitive types.
[tools/fbitdump/src/TableManager.cpp:119]: (performance) Prefer prefix ++/-- operators for non-primitive types.
[tools/fbitdump/src/TableManager.cpp:217]: (performance) Prefer prefix ++/-- operators for non-primitive types.
[tools/fbitdump/src/TableSummary.cpp:50]: (performance) Prefer prefix ++/-- operators for non-primitive types.
[tools/fbitdump/src/TemplateInfo.cpp:52]: (performance) Prefer prefix ++/-- operators for non-primitive types.
[tools/fbitdump/src/TemplateInfo.cpp:83]: (performance) Prefer prefix ++/-- operators for non-primitive types.
[tools/fbitdump/src/fbitdump.cpp:131]: (performance) Prefer prefix ++/-- operators for non-primitive types.
[tools/fbitdump/src/fbitdump.cpp:147]: (performance) Prefer prefix ++/-- operators for non-primitive types.
[tools/fbitdump/src/plugins/mac.c:44]: (portability) scanf without field width limits can crash with huge input data on some versions of libc.
[tools/fbitexpire/src/inotify-cxx/inotify-cxx.h:400]: (warning) Member variable 'InotifyWatch::m_pInotify' is not initialized in the constructor.
[tools/fbitexpire/src/Scanner.h:114] -> [tools/fbitexpire/src/fbitexpire.h:98]: (warning) The class 'Scanner' defines member variable with name '_th' also defined in its parent class 'FbitexpireThread'.
[tools/fbitexpire/src/inotify-cxx/inotify-cxx.cpp:601]: (portability) scanf without field width limits can crash with huge input data on some versions of libc.
[tools/fbitexpire/src/inotify-cxx/inotify-cxx.cpp:432]: (performance) Prefer prefix ++/-- operators for non-primitive types.
[tools/fbitmerge/src/fbitmerge.cpp:358]: (performance) Prefer prefix ++/-- operators for non-primitive types.
[tools/fbitmerge/src/fbitmerge.cpp:432]: (performance) Prefer prefix ++/-- operators for non-primitive types.
[tools/fbitmerge/src/fbitmerge.cpp:433]: (performance) Prefer prefix ++/-- operators for non-primitive types.
[tools/fbitmerge/src/fbitmerge.cpp:454]: (performance) Prefer prefix ++/-- operators for non-primitive types.
[tools/fbitmerge/src/fbitmerge.cpp:483]: (performance) Prefer prefix ++/-- operators for non-primitive types.
[tools/fbitmerge/src/fbitmerge.cpp:484]: (performance) Prefer prefix ++/-- operators for non-primitive types.
[tools/fbitmerge/src/fbitmerge.cpp:598]: (performance) Prefer prefix ++/-- operators for non-primitive types.
ghost commented 9 years ago

@denji What is exactly the relation with this issue? Please create a dedicated ticket for your issue.

I guess, in order for something to be fixed, you have to be a bit more specific about how to reproduce the shown behavior.

thorgrin commented 9 years ago

This should be fixed together with #16