[lvm-devel] LVM2/liblvm lvm2app.h lvm_lv.c lvm_pv.c lvm_vg.c

Zdenek Kabelac zkabelac at redhat.com
Mon Apr 19 15:34:04 UTC 2010


On 19.4.2010 17:22, wysochanski at sourceware.org wrote:
> CVSROOT:	/cvs/lvm2
> Module name:	LVM2
> Changes by:	wysochanski at sourceware.org	2010-04-19 15:22:24
> 
> Modified files:
> 	liblvm         : lvm2app.h lvm_lv.c lvm_pv.c lvm_vg.c 
> 
> Log message:
> 	Use vg->vgmem to allocate vg/lv/pv string properties instead of dm_malloc/fr
> 	
> 	Everywhere else in the API the caller can rely on lvm2app taking care of
> 	memory allocation and free, so make the 'name' and 'uuid' properties of a
> 	vg/lv/pv use the vg handle to allocate memory.
> 	
> 	Signed-off-by: Dave Wysochanski <dwysocha at redhat.com>

> -char *lvm_vg_get_name(const vg_t vg)
> +const char *lvm_vg_get_name(const vg_t vg)
>  {
> -	char *name;
> -
> -	name = dm_malloc(NAME_LEN + 1);
> -	strncpy(name, (const char *)vg->name, NAME_LEN);
> -	name[NAME_LEN] = '\0';
> -	return name;
> +	return dm_pool_strndup(vg->vgmem, (const char *)vg->name, NAME_LEN+1);
>  }


Either we should return   const char*  return vg->name;
or we should  char* return strdup(vg->name) and user could do whatever he
wants to do with the string.

I'd prefer 1.) for efficiency, but I don't see any point in current code.
Usually user wants to make a quick check for something - he will use const
char*, or he want to keep it for later and he fill duplicate string with his
own memory allocation routines (i.e. C++ new.... )

Zdenek




More information about the lvm-devel mailing list