[augeas-devel] [PATCH] Add aug_rename to rename node labels without moving them in the tree.

David Lutterkort lutter at redhat.com
Wed Aug 1 19:20:56 UTC 2012


Actually missed a memory leak earlier:

On Wed, 2012-08-01 at 10:54 +0200, Raphaël Pinson wrote:
> diff --git a/src/augeas.c b/src/augeas.c
> index 22ebd14..7ca081a 100644
> --- a/src/augeas.c
> +++ b/src/augeas.c
> @@ -1245,6 +1245,32 @@ int aug_mv(struct augeas *aug, const char *src, const char *dst) {
>      return ret;
>  }
>  
> +int aug_rename(struct augeas *aug, const char *src, const char *lbl) {
> +    struct pathx *s = NULL;
> +    struct tree *ts;
> +    int r, ret;
> +
> +    api_entry(aug);
> +
> +    ret = -1;
> +    s = pathx_aug_parse(aug, aug->origin, tree_root_ctx(aug), src, true);
> +    ERR_BAIL(aug);
> +
> +    r = find_one_node(s, &ts);
> +    if (r < 0)
> +        goto error;
> +
> +    ts->label = strdup(lbl);

You need to do a 'free(ts->label)' first before assigning to it. (We
don't have a utility function to parallel tree_set_value)

David





More information about the augeas-devel mailing list