** 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

Reply via email to