On Sat, Dec 17, 2011 at 01:36:51AM +0000, Dimitry Andric wrote:
> Author: dim
> Date: Sat Dec 17 01:36:50 2011
> New Revision: 228616
> URL: http://svn.freebsd.org/changeset/base/228616
> 
> Log:
>   In usr.bin/tar/tree.c, if you really want to poke to NULL, you must use
>   volatile, otherwise the indirection will not be emitted.
>   
>   MFC after:  1 week
> 
> Modified:
>   head/usr.bin/tar/tree.c
> 
> Modified: head/usr.bin/tar/tree.c
> ==============================================================================
> --- head/usr.bin/tar/tree.c   Sat Dec 17 01:29:46 2011        (r228615)
> +++ head/usr.bin/tar/tree.c   Sat Dec 17 01:36:50 2011        (r228616)
> @@ -315,7 +315,7 @@ tree_next(struct tree *t)
>               const char *msg = "Unable to continue traversing"
>                   " directory hierarchy after a fatal error.";
>               write(2, msg, strlen(msg));
> -             *(int *)0 = 1; /* Deliberate SEGV; NULL pointer dereference. */
> +             *(volatile int *)0 = 1; /* Deliberate SEGV; NULL pointer 
> dereference. */
>               exit(1); /* In case the SEGV didn't work. */
>       }
>  
Why this hack is used instead of abort(3) or abort2(2) ?

Attachment: pgpHVSaDhrY3f.pgp
Description: PGP signature



Reply via email to