BUG: 'glabel label' name's lenght, is truncated without err/warn

Ed Schouten ed at 80386.nl
Tue Nov 8 11:51:58 UTC 2011


* Lucas Holt <luke at foolishgames.com>, 20111105 15:24:
> --- src/sbin/geom/class/label/geom_label.c	2008/11/21 21:05:31	1.3
> +++ src/sbin/geom/class/label/geom_label.c	2011/11/05 14:15:23	1.4
> @@ -118,6 +118,12 @@ label_label(struct gctl_req *req)
>  		return;
>  	}
>  
> +	label = gctl_get_ascii(req, "arg0");
> +	if (strlen(label) > 15) {
> +		gctl_error(req, "Label cannot exceed 15 characters");
> +		return;
> +	}
> +
>  	/*
>  	 * Clear last sector first to spoil all components if device exists.
>  	 */
> @@ -131,7 +137,6 @@ label_label(struct gctl_req *req)
>  
>  	strlcpy(md.md_magic, G_LABEL_MAGIC, sizeof(md.md_magic));
>  	md.md_version = G_LABEL_VERSION;
> -	label = gctl_get_ascii(req, "arg0");
>  	strlcpy(md.md_label, label, sizeof(md.md_label));
>  	md.md_provsize = g_get_mediasize(name);
>  	if (md.md_provsize == 0) {

Why not simply perform the strlcpy and check whether

	if (strlcpy(...) >= sizeof(md.md_label)

?

-- 
 Ed Schouten <ed at 80386.nl>
 WWW: http://80386.nl/
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 834 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-hackers/attachments/20111108/232dcd2c/attachment.pgp


More information about the freebsd-hackers mailing list