[PATCH 3/7] IMFS: Simplify IMFS_symlink()
Sebastian Huber
sebastian.huber at embedded-brains.de
Tue Feb 10 08:22:47 UTC 2015
On 09/02/15 22:28, Gedare Bloom wrote:
> Nit: should the counted string functions be used?
No, the allocation part takes care that we have enough space in the buffer.
>
> On Mon, Feb 9, 2015 at 3:35 PM, Sebastian Huber
> <sebastian.huber at embedded-brains.de> wrote:
>> ---
>> cpukit/libfs/src/imfs/imfs_symlink.c | 33 +++++++--------------------------
>> 1 file changed, 7 insertions(+), 26 deletions(-)
>>
>> diff --git a/cpukit/libfs/src/imfs/imfs_symlink.c b/cpukit/libfs/src/imfs/imfs_symlink.c
>> index 2ddf99c..0f06446 100644
>> --- a/cpukit/libfs/src/imfs/imfs_symlink.c
>> +++ b/cpukit/libfs/src/imfs/imfs_symlink.c
>> @@ -20,7 +20,6 @@
>>
>> #include "imfs.h"
>>
>> -#include <stdlib.h>
>> #include <string.h>
>>
>> static const IMFS_node_control IMFS_node_control_sym_link;
>> @@ -32,33 +31,23 @@ int IMFS_symlink(
>> const char *target
>> )
>> {
>> - char *dup_target;
>> IMFS_jnode_t *new_node;
>>
>> /*
>> - * Duplicate link name
>> - */
>> - dup_target = strdup(target);
>> - if (dup_target == NULL) {
>> - rtems_set_errno_and_return_minus_one(ENOMEM);
>> - }
>> -
>> - /*
>> * Create a new link node.
>> */
>> new_node = IMFS_create_node(
>> parentloc,
>> &IMFS_node_control_sym_link,
>> - sizeof( IMFS_sym_link_t ),
>> + sizeof( IMFS_sym_link_t ) + strlen( target ) + 1,
>> name,
>> namelen,
>> ( S_IFLNK | ( S_IRWXU | S_IRWXG | S_IRWXO )),
>> - dup_target
>> + RTEMS_DECONST( char *, target )
>> );
>>
>> - if (new_node == NULL) {
>> - free(dup_target);
>> - rtems_set_errno_and_return_minus_one(ENOMEM);
>> + if ( new_node == NULL ) {
>> + rtems_set_errno_and_return_minus_one( ENOMEM );
>> }
>>
>> return 0;
>> @@ -118,23 +107,15 @@ static IMFS_jnode_t *IMFS_node_initialize_sym_link(
>> {
>> IMFS_sym_link_t *sym_link = (IMFS_sym_link_t *) node;
>>
>> - sym_link->name = arg;
>> + sym_link->name = (char *) sym_link + sizeof( *sym_link );
>> + strcpy( sym_link->name, arg );
>>
>> return node;
>> }
>>
>> -static void IMFS_node_destroy_sym_link( IMFS_jnode_t *node )
>> -{
>> - IMFS_sym_link_t *sym_link = (IMFS_sym_link_t *) node;
>> -
>> - free( sym_link->name );
>> -
>> - IMFS_node_destroy_default( node );
>> -}
>> -
>> static const IMFS_node_control IMFS_node_control_sym_link = {
>> .handlers = &IMFS_link_handlers,
>> .node_initialize = IMFS_node_initialize_sym_link,
>> .node_remove = IMFS_node_remove_default,
>> - .node_destroy = IMFS_node_destroy_sym_link
>> + .node_destroy = IMFS_node_destroy_default
>> };
>> --
>> 2.1.4
>>
>> _______________________________________________
>> devel mailing list
>> devel at rtems.org
>> http://lists.rtems.org/mailman/listinfo/devel
--
Sebastian Huber, embedded brains GmbH
Address : Dornierstr. 4, D-82178 Puchheim, Germany
Phone : +49 89 189 47 41-16
Fax : +49 89 189 47 41-09
E-Mail : sebastian.huber at embedded-brains.de
PGP : Public key available on request.
Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG.
More information about the devel
mailing list