PERFORCE change 18586 for review

Robert Watson rwatson at freebsd.org
Thu Oct 3 15:16:55 GMT 2002


I think a preferred solution for this would be the one adopted by chmod
and all other file attribute setting tools in the system: operate on the
symlink target unless '-h' is explicitly passed by the caller.

Robert N M Watson             FreeBSD Core Team, TrustedBSD Projects
robert at fledge.watson.org      Network Associates Laboratories

On Thu, 3 Oct 2002, Brian Feldman wrote:

> http://people.freebsd.org/~peter/p4db/chv.cgi?CH=18586
> 
> Change 18586 by green at green_laptop_2 on 2002/10/03 07:15:58
> 
> 	Don't uselessly follow symlinks in the extattr utilities.
> 
> Affected files ...
> 
> .. //depot/projects/trustedbsd/mac/usr.sbin/extattr/rmextattr.8#2 edit
> .. //depot/projects/trustedbsd/mac/usr.sbin/extattr/rmextattr.c#3 edit
> 
> Differences ...
> 
> ==== //depot/projects/trustedbsd/mac/usr.sbin/extattr/rmextattr.8#2 (text+ko) ====
> 
> @@ -77,6 +77,9 @@
>  the name of the target file or directory,
>  .Ar attrvalue
>  a string to store in the attribute.
> +Since it is not useful to operate on the target of a symbolic link, the given
> +.Ar filename
> +is not followed if it is one.
>  .Pp
>  The following options are available:
>  .Bl -tag -width flag
> 
> ==== //depot/projects/trustedbsd/mac/usr.sbin/extattr/rmextattr.c#3 (text+ko) ====
> 
> @@ -178,25 +178,25 @@
>  	for (arg_counter = 0; arg_counter < argc; arg_counter++) {
>  		switch (what) {
>  		case EARM:
> -			error = extattr_delete_file(argv[arg_counter],
> +			error = extattr_delete_link(argv[arg_counter],
>  			    attrnamespace, attrname);
>  			if (error >= 0)
>  				continue;
>  			break;
>  		case EASET:
> -			error = extattr_set_file(argv[arg_counter],
> +			error = extattr_set_link(argv[arg_counter],
>  			    attrnamespace, attrname, buf, strlen(buf));
>  			if (error >= 0)
>  				continue;
>  			break;
>  		case EALS:
>  		case EAGET:
> -			error = extattr_get_file(argv[arg_counter],
> +			error = extattr_get_link(argv[arg_counter],
>  			    attrnamespace, attrname, NULL, 0);
>  			if (error < 0)
>  				break;
>  			mkbuf(&buf, &buflen, error);
> -			error = extattr_get_file(argv[arg_counter],
> +			error = extattr_get_link(argv[arg_counter],
>  			    attrnamespace, attrname, buf, buflen);
>  			if (error < 0)
>  				break;
> 

To Unsubscribe: send mail to majordomo at trustedbsd.org
with "unsubscribe trustedbsd-cvs" in the body of the message



More information about the trustedbsd-cvs mailing list