diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2010-08-27 06:29:26 +0000 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2010-08-27 06:29:26 +0000 |
commit | e91cd600222b3a37f1a8642e1aad070a429f786a (patch) | |
tree | 4d8c590525ee312ff2af235a73abbccf0caa4b73 /cpukit | |
parent | 2010-08-27 Chris Johns <chrisj@rtems.org> (diff) | |
download | rtems-e91cd600222b3a37f1a8642e1aad070a429f786a.tar.bz2 |
2010-08-26 Sebastian Huber <sebastian.huber@embedded-brains.de>
* libcsupport/src/mount.c: Avoid strcpy().
Diffstat (limited to 'cpukit')
-rw-r--r-- | cpukit/ChangeLog | 4 | ||||
-rw-r--r-- | cpukit/libcsupport/src/mount.c | 18 |
2 files changed, 12 insertions, 10 deletions
diff --git a/cpukit/ChangeLog b/cpukit/ChangeLog index e2d7aedd41..cc56e3cb93 100644 --- a/cpukit/ChangeLog +++ b/cpukit/ChangeLog @@ -1,3 +1,7 @@ +2010-08-26 Sebastian Huber <sebastian.huber@embedded-brains.de> + + * libcsupport/src/mount.c: Avoid strcpy(). + 2010-08-26 Joel Sherrill <joel.sherrill@oarcorp.com> * libcsupport/src/sync.c: Add comment explaining why the return value diff --git a/cpukit/libcsupport/src/mount.c b/cpukit/libcsupport/src/mount.c index 96720e77ab..00a07aab3a 100644 --- a/cpukit/libcsupport/src/mount.c +++ b/cpukit/libcsupport/src/mount.c @@ -74,29 +74,27 @@ static rtems_filesystem_mount_table_entry_t *alloc_mount_table_entry( size_t filesystemtype_size = strlen( filesystemtype ) + 1; size_t source_size = source_or_null != NULL ? strlen( source_or_null ) + 1 : 0; - size_t target_length = strlen( target ); + size_t target_size = strlen( target ) + 1; size_t size = sizeof( rtems_filesystem_mount_table_entry_t ) - + filesystemtype_size + source_size + target_length + 1; + + filesystemtype_size + source_size + target_size; rtems_filesystem_mount_table_entry_t *mt_entry = calloc( 1, size ); if ( mt_entry != NULL ) { char *str = (char *) mt_entry + sizeof( *mt_entry ); - strcpy( str, filesystemtype ); + memcpy( str, filesystemtype, filesystemtype_size ); mt_entry->type = str; str += filesystemtype_size; - if ( source_or_null != NULL ) { - strcpy( str, source_or_null ); - mt_entry->dev = str; - str += source_size; - } + memcpy( str, source_or_null, source_size ); + mt_entry->dev = str; + str += source_size; - strcpy( str, target ); + memcpy( str, target, target_size ); mt_entry->target = str; } - *target_length_ptr = target_length; + *target_length_ptr = target_size - 1; return mt_entry; } |