summaryrefslogtreecommitdiffstats
path: root/tools/build
diff options
context:
space:
mode:
authorRalf Corsepius <ralf.corsepius@rtems.org>2010-07-30 12:44:32 +0000
committerRalf Corsepius <ralf.corsepius@rtems.org>2010-07-30 12:44:32 +0000
commit49fb1c503333fd9b7738b2d5eddfa1e775cd93f2 (patch)
tree840b7f926b3711de9d8d1adac4f80e1c6ad8fca6 /tools/build
parent2010-07-30 Ralf Corsépius <ralf.corsepius@rtems.org> (diff)
downloadrtems-49fb1c503333fd9b7738b2d5eddfa1e775cd93f2.tar.bz2
2010-07-30 Ralf Corsépius <ralf.corsepius@rtems.org>
* rtems-bin2c.c: Fix memory leak in '.c' suffix strip. Also strip '.h' suffix.
Diffstat (limited to 'tools/build')
-rw-r--r--tools/build/ChangeLog5
-rw-r--r--tools/build/rtems-bin2c.c8
2 files changed, 11 insertions, 2 deletions
diff --git a/tools/build/ChangeLog b/tools/build/ChangeLog
index b1cb6d16d1..70bed699c5 100644
--- a/tools/build/ChangeLog
+++ b/tools/build/ChangeLog
@@ -1,5 +1,10 @@
2010-07-30 Ralf Corsépius <ralf.corsepius@rtems.org>
+ * rtems-bin2c.c: Fix memory leak in '.c' suffix strip.
+ Also strip '.h' suffix.
+
+2010-07-30 Ralf Corsépius <ralf.corsepius@rtems.org>
+
* rtems-bin2c.c: Make -v (verbose) working.
2010-07-30 Ralf Corsépius <ralf.corsepius@rtems.org>
diff --git a/tools/build/rtems-bin2c.c b/tools/build/rtems-bin2c.c
index 28148dc70a..4e6796aa38 100644
--- a/tools/build/rtems-bin2c.c
+++ b/tools/build/rtems-bin2c.c
@@ -70,8 +70,12 @@ void process(const char *ifname, const char *ofname)
strncpy( obasename, ofname, PATH_MAX );
len = strlen( obasename );
- if ( obasename[len-2] == '.' && obasename[len-1] == 'c' )
- obasename[len-2] = '\0';
+ if ( len >= 2 ) {
+ if ( obasename[len-2] == '.' ) {
+ if ( (obasename[len-1] == 'c') || (obasename[len-1] == 'h') )
+ obasename[len-2] = '\0';
+ }
+ }
sprintf( ocname, "%s.c", obasename );
sprintf( ohname, "%s.h", obasename );