Using safe_read seems, well, safer...
diff --git a/libbb/full_read.c b/libbb/full_read.c
index e75f967..6c7e55c 100644
--- a/libbb/full_read.c
+++ b/libbb/full_read.c
@@ -37,7 +37,7 @@
 	total = 0;
 
 	while (len > 0) {
-		cc = read(fd, buf, len);
+		cc = safe_read(fd, buf, len);
 
 		if (cc < 0)
 			return cc;	/* read() returns -1 on failure. */