Index: uspace/lib/c/generic/elf/elf_load.c
===================================================================
--- uspace/lib/c/generic/elf/elf_load.c	(revision c56678277933bfe914b5c5b5102db476b258b8ba)
+++ uspace/lib/c/generic/elf/elf_load.c	(revision e97b8c6f6924abbdc775f9b4b37835fc1dd4151b)
@@ -148,5 +148,5 @@
 
 	rc = read_all(elf->fd, header, sizeof(elf_header_t));
-	if (rc < 0) {
+	if (rc != sizeof(elf_header_t)) {
 		DPRINTF("Read error.\n"); 
 		return EE_INVALID;
@@ -211,5 +211,5 @@
 		rc = read_all(elf->fd, &segment_hdr,
 		    sizeof(elf_segment_header_t));
-		if (rc < 0) {
+		if (rc != sizeof(elf_segment_header_t)) {
 			DPRINTF("Read error.\n");
 			return EE_INVALID;
@@ -233,5 +233,5 @@
 		rc = read_all(elf->fd, &section_hdr,
 		    sizeof(elf_section_header_t));
-		if (rc < 0) {
+		if (rc != sizeof(elf_section_header_t)) {
 			DPRINTF("Read error.\n");
 			return EE_INVALID;
@@ -321,5 +321,5 @@
 	uintptr_t seg_addr;
 	size_t mem_sz;
-	int rc;
+	ssize_t rc;
 
 	bias = elf->bias;
@@ -401,5 +401,5 @@
 		rc = read_all(elf->fd, dp, now);
 
-		if (rc < 0) { 
+		if (rc != (ssize_t) now) { 
 			DPRINTF("Read error.\n");
 			return EE_INVALID;
