[PATCH 3/7] IMFS: Simplify IMFS_symlink()
Gedare Bloom
gedare at rtems.org
Mon Feb 9 21:28:47 UTC 2015
Nit: should the counted string functions be used?
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
More information about the devel
mailing list