Per some comments from Lars Kellogg-Stedman <lars@larsshack.org>,
make xreadlink() return NULL on failure, and make sure everyone
uses the interface correctly.
 -Erik
diff --git a/archival/tar.c b/archival/tar.c
index eb085c7..135bfd1 100644
--- a/archival/tar.c
+++ b/archival/tar.c
@@ -922,6 +922,8 @@
 		strncpy(header.linkname, tbInfo->hlInfo->name, sizeof(header.linkname));
 	} else if (S_ISLNK(statbuf->st_mode)) {
 		char *lpath = xreadlink(real_name);
+		if (!lpath) /* Already printed err msg inside xreadlink() */
+			return ( FALSE);
 		header.typeflag  = SYMTYPE;
 		strncpy(header.linkname, lpath, sizeof(header.linkname)); 
 		free(lpath);