** Description changed: The eC compiler and IDE crashed on buffer overflows. These included: - The GCC command for preprocessing in ecp and ecc - The communication with integrated GDB - Opening in the Code Editor a file specifying a text property containing a long string of text - Using a very long set of command line arguments (Project Settings/Workspace), when writing to the workspace file [Test Case] - Run ecp or ecp with a lot of arguments to be passed down to GCC for processing ( e.g. a lot of -I/usr/include/long/paths ) jerome@quantal:~/sdk/samples/eC/HelloWorld$ ecc -c HelloWorld.ec -o obj/debug.linux/HelloWorld.c -symbols obj/debug.linux/ -Isomeveryveryveryveryveryveryveryveryveryveryveryveryverylongargument -Isomeveryveryveryveryveryveryveryveryveryveryveryveryverylongargument -Isomeveryveryveryveryveryveryveryveryveryveryveryveryverylongargument -Isomeveryveryveryveryveryveryveryveryveryveryveryveryverylongargument -Isomeveryveryveryveryveryveryveryveryveryveryveryveryverylongargument -Isomeveryveryveryveryveryveryveryveryveryveryveryveryverylongargument -Isomeveryveryveryveryveryveryveryveryveryveryveryveryverylongargument -Isomeveryveryveryveryveryveryveryveryveryveryveryveryverylongargument -Isomeveryveryveryveryveryveryveryveryveryveryveryveryverylongargument -Isomeveryveryveryveryveryveryveryveryveryveryveryveryverylongargument -Isomeveryveryveryveryveryveryveryveryveryveryveryveryverylongargument -Isomeveryveryveryveryveryveryveryveryveryveryveryveryverylongargument -Isomeveryveryveryveryveryveryveryveryveryveryveryveryverylongargument -Isomeveryveryveryveryveryveryveryveryveryveryveryveryverylongargument -Isomeveryveryveryveryveryveryveryveryveryveryveryveryverylongargument -Isomeveryveryveryveryveryveryveryveryveryveryveryveryverylongargument -Isomeveryveryveryveryveryveryveryveryveryveryveryveryverylongargument -Isomeveryveryveryveryveryveryveryveryveryveryveryveryverylongargument -Isomeveryveryveryveryveryveryveryveryveryveryveryveryverylongargument -Isomeveryveryveryveryveryveryveryveryveryveryveryveryverylongargument -Isomeveryveryveryveryveryveryveryveryveryveryveryveryverylongargument -Isomeveryveryveryveryveryveryveryveryveryveryveryveryverylongargument -Isomeveryveryveryveryveryveryveryveryveryveryveryveryverylongargument -Isomeveryveryveryveryveryveryveryveryveryveryveryveryverylongargument -Isomeveryveryveryveryveryveryveryveryveryveryveryveryverylongargument -Isomeveryveryveryveryveryveryveryveryveryveryveryveryverylongargument -Isomeveryveryveryveryveryveryveryveryveryveryveryveryverylongargument -Isomeveryveryveryveryveryveryveryveryveryveryveryveryverylongargument -Isomeveryveryveryveryveryveryveryveryveryveryveryveryverylongargument -Isomeveryveryveryveryveryveryveryveryveryveryveryveryverylongargument -Isomeveryveryveryveryveryveryveryveryveryveryveryveryverylongargument -Isomeveryveryveryveryveryveryveryveryveryveryveryveryverylongargument -Isomeveryveryveryveryveryveryveryveryveryveryveryveryverylongargument -Isomeveryveryveryveryveryveryveryveryveryveryveryveryverylongargument -Isomeveryveryveryveryveryveryveryveryveryveryveryveryverylongargument -Isomeveryveryveryveryveryveryveryveryveryveryveryveryverylongargument -Isomeveryveryveryveryveryveryveryveryveryveryveryveryverylongargument -Isomeveryveryveryveryveryveryveryveryveryveryveryveryverylongargument -Isomeveryveryveryveryveryveryveryveryveryveryveryveryverylongargument -Isomeveryveryveryveryveryveryveryveryveryveryveryveryverylongargument -Isomeveryveryveryveryveryveryveryveryveryveryveryveryverylongargument -Isomeveryveryveryveryveryveryveryveryveryveryveryveryverylongargument -Isomeveryveryveryveryveryveryveryveryveryveryveryveryverylongargument -Isomeveryveryveryveryveryveryveryveryveryveryveryveryverylongargument -Isomeveryveryveryveryveryveryveryveryveryveryveryveryverylongargument -Isomeveryveryveryveryveryveryveryveryveryveryveryveryverylongargument -Isomeveryveryveryveryveryveryveryveryveryveryveryveryverylongargument -Isomeveryveryveryveryveryveryveryveryveryveryveryveryverylongargument -Isomeveryveryveryveryveryveryveryveryveryveryveryveryverylongargument -Isomeveryveryveryveryveryveryveryveryveryveryveryveryverylongargument -Isomeveryveryveryveryveryveryveryveryveryveryveryveryverylongargument -Isomeveryveryveryveryveryveryveryveryveryveryveryveryverylongargument -Isomeveryveryveryveryveryveryveryveryveryveryveryveryverylongargument -Isomeveryveryveryveryveryveryveryveryveryveryveryveryverylongargument -Isomeveryveryveryveryveryveryveryveryveryveryveryveryverylongargument -Isomeveryveryveryveryveryveryveryveryveryveryveryveryverylongargument -Isomeveryveryveryveryveryveryveryveryveryveryveryveryverylongargument -Isomeveryveryveryveryveryveryveryveryveryveryveryveryverylongargument -Isomeveryveryveryveryveryveryveryveryveryveryveryveryverylongargument -Isomeveryveryveryveryveryveryveryveryveryveryveryveryverylongargument -Isomeveryveryveryveryveryveryveryveryveryveryveryveryverylongargument -Isomeveryveryveryveryveryveryveryveryveryveryveryveryverylongargument -Isomeveryveryveryveryveryveryveryveryveryveryveryveryverylongargument -Isomeveryveryveryveryveryveryveryveryveryveryveryveryverylongargument -Isomeveryveryveryveryveryveryveryveryveryveryveryveryverylongargument -Isomeveryveryveryveryveryveryveryveryveryveryveryveryverylongargument -Isomeveryveryveryveryveryveryveryveryveryveryveryveryverylongargument -Isomeveryveryveryveryveryveryveryveryveryveryveryveryverylongargument -Isomeveryveryveryveryveryveryveryveryveryveryveryveryverylongargument -Isomeveryveryveryveryveryveryveryveryveryveryveryveryverylongargument *** stack smashing detected ***: ecc terminated Aborted (core dumped) - - - Cause a long (>1024 chars) GDB command to be issued (Set a long set of command line arguments in Project Settings/Workspace) + - Cause a long (>1024 chars) GDB command to be issued (Set a long set + of command line arguments in Project Settings/Workspace) - Open up ide/src/about.ec in the IDE: jerome@quantal:~/sdk$ ide ide/src/about.ec *** stack smashing detected ***: ide terminated Aborted (core dumped) - Set up a very long set of command line arguments (Project Settings/Workspace) [Regression Potential] - Since the size for these buffers have either been increased, or they have been replaced by dynamic buffer, things should work better. Nothing should be negatively affected. - It might still possible to reproduce some of these which much bigger strings for the GCC preprocessing command and the communication with GDB: for these the buffer has been increased from 1024 to 3075 characters until we have a safer solution. + Since the size for these buffers have either been increased and passed along to snprintf/vsnprintf, or they have been replaced by dynamic buffer, things should work better. Unless a mistake was inadvertently made, nothing should break.
** Description changed: The eC compiler and IDE crashed on buffer overflows. These included: - The GCC command for preprocessing in ecp and ecc - The communication with integrated GDB - Opening in the Code Editor a file specifying a text property containing a long string of text - Using a very long set of command line arguments (Project Settings/Workspace), when writing to the workspace file [Test Case] - - Run ecp or ecp with a lot of arguments to be passed down to GCC for processing ( e.g. a lot of -I/usr/include/long/paths ) + - Build the HelloWorld sample in debug config (so as to produce the symbols) + Then in a shell run ecc with a lot of arguments to be passed down to GCC for processing: jerome@quantal:~/sdk/samples/eC/HelloWorld$ ecc -c HelloWorld.ec -o obj/debug.linux/HelloWorld.c -symbols obj/debug.linux/ -Isomeveryveryveryveryveryveryveryveryveryveryveryveryverylongargument -Isomeveryveryveryveryveryveryveryveryveryveryveryveryverylongargument -Isomeveryveryveryveryveryveryveryveryveryveryveryveryverylongargument -Isomeveryveryveryveryveryveryveryveryveryveryveryveryverylongargument -Isomeveryveryveryveryveryveryveryveryveryveryveryveryverylongargument -Isomeveryveryveryveryveryveryveryveryveryveryveryveryverylongargument -Isomeveryveryveryveryveryveryveryveryveryveryveryveryverylongargument -Isomeveryveryveryveryveryveryveryveryveryveryveryveryverylongargument -Isomeveryveryveryveryveryveryveryveryveryveryveryveryverylongargument -Isomeveryveryveryveryveryveryveryveryveryveryveryveryverylongargument -Isomeveryveryveryveryveryveryveryveryveryveryveryveryverylongargument -Isomeveryveryveryveryveryveryveryveryveryveryveryveryverylongargument -Isomeveryveryveryveryveryveryveryveryveryveryveryveryverylongargument -Isomeveryveryveryveryveryveryveryveryveryveryveryveryverylongargument -Isomeveryveryveryveryveryveryveryveryveryveryveryveryverylongargument -Isomeveryveryveryveryveryveryveryveryveryveryveryveryverylongargument -Isomeveryveryveryveryveryveryveryveryveryveryveryveryverylongargument -Isomeveryveryveryveryveryveryveryveryveryveryveryveryverylongargument -Isomeveryveryveryveryveryveryveryveryveryveryveryveryverylongargument -Isomeveryveryveryveryveryveryveryveryveryveryveryveryverylongargument -Isomeveryveryveryveryveryveryveryveryveryveryveryveryverylongargument -Isomeveryveryveryveryveryveryveryveryveryveryveryveryverylongargument -Isomeveryveryveryveryveryveryveryveryveryveryveryveryverylongargument -Isomeveryveryveryveryveryveryveryveryveryveryveryveryverylongargument -Isomeveryveryveryveryveryveryveryveryveryveryveryveryverylongargument -Isomeveryveryveryveryveryveryveryveryveryveryveryveryverylongargument -Isomeveryveryveryveryveryveryveryveryveryveryveryveryverylongargument -Isomeveryveryveryveryveryveryveryveryveryveryveryveryverylongargument -Isomeveryveryveryveryveryveryveryveryveryveryveryveryverylongargument -Isomeveryveryveryveryveryveryveryveryveryveryveryveryverylongargument -Isomeveryveryveryveryveryveryveryveryveryveryveryveryverylongargument -Isomeveryveryveryveryveryveryveryveryveryveryveryveryverylongargument -Isomeveryveryveryveryveryveryveryveryveryveryveryveryverylongargument -Isomeveryveryveryveryveryveryveryveryveryveryveryveryverylongargument -Isomeveryveryveryveryveryveryveryveryveryveryveryveryverylongargument -Isomeveryveryveryveryveryveryveryveryveryveryveryveryverylongargument -Isomeveryveryveryveryveryveryveryveryveryveryveryveryverylongargument -Isomeveryveryveryveryveryveryveryveryveryveryveryveryverylongargument -Isomeveryveryveryveryveryveryveryveryveryveryveryveryverylongargument -Isomeveryveryveryveryveryveryveryveryveryveryveryveryverylongargument -Isomeveryveryveryveryveryveryveryveryveryveryveryveryverylongargument -Isomeveryveryveryveryveryveryveryveryveryveryveryveryverylongargument -Isomeveryveryveryveryveryveryveryveryveryveryveryveryverylongargument -Isomeveryveryveryveryveryveryveryveryveryveryveryveryverylongargument -Isomeveryveryveryveryveryveryveryveryveryveryveryveryverylongargument -Isomeveryveryveryveryveryveryveryveryveryveryveryveryverylongargument -Isomeveryveryveryveryveryveryveryveryveryveryveryveryverylongargument -Isomeveryveryveryveryveryveryveryveryveryveryveryveryverylongargument -Isomeveryveryveryveryveryveryveryveryveryveryveryveryverylongargument -Isomeveryveryveryveryveryveryveryveryveryveryveryveryverylongargument -Isomeveryveryveryveryveryveryveryveryveryveryveryveryverylongargument -Isomeveryveryveryveryveryveryveryveryveryveryveryveryverylongargument -Isomeveryveryveryveryveryveryveryveryveryveryveryveryverylongargument -Isomeveryveryveryveryveryveryveryveryveryveryveryveryverylongargument -Isomeveryveryveryveryveryveryveryveryveryveryveryveryverylongargument -Isomeveryveryveryveryveryveryveryveryveryveryveryveryverylongargument -Isomeveryveryveryveryveryveryveryveryveryveryveryveryverylongargument -Isomeveryveryveryveryveryveryveryveryveryveryveryveryverylongargument -Isomeveryveryveryveryveryveryveryveryveryveryveryveryverylongargument -Isomeveryveryveryveryveryveryveryveryveryveryveryveryverylongargument -Isomeveryveryveryveryveryveryveryveryveryveryveryveryverylongargument -Isomeveryveryveryveryveryveryveryveryveryveryveryveryverylongargument -Isomeveryveryveryveryveryveryveryveryveryveryveryveryverylongargument -Isomeveryveryveryveryveryveryveryveryveryveryveryveryverylongargument -Isomeveryveryveryveryveryveryveryveryveryveryveryveryverylongargument -Isomeveryveryveryveryveryveryveryveryveryveryveryveryverylongargument -Isomeveryveryveryveryveryveryveryveryveryveryveryveryverylongargument -Isomeveryveryveryveryveryveryveryveryveryveryveryveryverylongargument -Isomeveryveryveryveryveryveryveryveryveryveryveryveryverylongargument -Isomeveryveryveryveryveryveryveryveryveryveryveryveryverylongargument *** stack smashing detected ***: ecc terminated Aborted (core dumped) - Cause a long (>1024 chars) GDB command to be issued (Set a long set of command line arguments in Project Settings/Workspace) - Open up ide/src/about.ec in the IDE: jerome@quantal:~/sdk$ ide ide/src/about.ec *** stack smashing detected ***: ide terminated Aborted (core dumped) - Set up a very long set of command line arguments (Project Settings/Workspace) [Regression Potential] Since the size for these buffers have either been increased and passed along to snprintf/vsnprintf, or they have been replaced by dynamic buffer, things should work better. Unless a mistake was inadvertently made, nothing should break. -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1107864 Title: [SRU] The eC compiler and IDE crashed on buffer overflows To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/ecere-sdk/+bug/1107864/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs