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) ?
pgpHVSaDhrY3f.pgp
Description: PGP signature