Blob Blame History Raw
diff -rup xen-3.0.4_1-src/tools/blktap/drivers/blktapctrl.c xen-3.0.4_1-src-new/tools/blktap/drivers/blktapctrl.c
--- xen-3.0.4_1-src/tools/blktap/drivers/blktapctrl.c	2007-01-08 10:00:46.000000000 -0500
+++ xen-3.0.4_1-src-new/tools/blktap/drivers/blktapctrl.c	2007-01-11 10:47:55.000000000 -0500
@@ -673,7 +673,10 @@ int main(int argc, char *argv[])
 	__init_blkif();
 	snprintf(buf, sizeof(buf), "BLKTAPCTRL[%d]", getpid());
 	openlog(buf, LOG_CONS|LOG_ODELAY, LOG_DAEMON);
-	daemon(0,0);
+	if (daemon(0,0) < 0) {
+		DPRINTF("could not go into daemon mode\n");
+		return -1;
+	}
 
 	print_drivers();
 	init_driver_list();
Only in xen-3.0.4_1-src-new/tools/blktap/drivers: blktapctrl.c~
diff -rup xen-3.0.4_1-src/tools/blktap/drivers/block-aio.c xen-3.0.4_1-src-new/tools/blktap/drivers/block-aio.c
--- xen-3.0.4_1-src/tools/blktap/drivers/block-aio.c	2007-01-11 10:40:51.000000000 -0500
+++ xen-3.0.4_1-src-new/tools/blktap/drivers/block-aio.c	2007-01-11 10:56:53.000000000 -0500
@@ -188,13 +188,27 @@ int tdaio_open (struct td_state *s, cons
 
         prv->fd = fd;
 
-	pipe(prv->command_fd);
-	pipe(prv->completion_fd);
+	if ((ret = pipe(prv->command_fd)) < 0) {
+		DPRINTF("Unable to create command pipe\n");
+		goto done;
+	}
+	if ((ret = pipe(prv->completion_fd)) < 0) {
+		DPRINTF("Unable to create completion pipe\n");
+		goto done;
+	}
 	
-	ret = pthread_create(&prv->aio_thread, NULL, 
-			     tdaio_completion_thread, prv);
+	if ((ret = pthread_create(&prv->aio_thread, NULL, 
+				  tdaio_completion_thread, prv)) != 0) {
+		ret = -1;
+		DPRINTF("Unable to create completion thread\n");
+		goto done;
+	}
 	ret = 0;
-	write(prv->command_fd[1], &ret, sizeof(ret));
+	if (write(prv->command_fd[1], &ret, sizeof(ret)) < 0) {
+		ret = -1;
+		DPRINTF("Cannot initialize command pipe\n");
+		goto done;
+	}
 
 			     
 	ret = get_image_info(s, fd);
@@ -371,7 +385,10 @@ repeat:	
 		goto repeat;
 	}
 
-	write(prv->command_fd[1], &nr_events, sizeof(nr_events));
+	if (write(prv->command_fd[1], &nr_events, sizeof(nr_events)) < 0) {
+		DPRINTF("cannot send events command\n");
+		return -1;
+	}
 
 	return rsp;
 }
Only in xen-3.0.4_1-src-new/tools/blktap/drivers: block-aio.c~
diff -rup xen-3.0.4_1-src/tools/blktap/drivers/block-qcow.c xen-3.0.4_1-src-new/tools/blktap/drivers/block-qcow.c
--- xen-3.0.4_1-src/tools/blktap/drivers/block-qcow.c	2007-01-08 10:00:46.000000000 -0500
+++ xen-3.0.4_1-src-new/tools/blktap/drivers/block-qcow.c	2007-01-11 11:15:35.000000000 -0500
@@ -441,8 +441,11 @@ static int qtruncate(int fd, off_t lengt
 				return -1;
 		}
 		
-	} else if(sparse && (st.st_size > length))
-		ftruncate(fd, length);
+	} else if(sparse && (st.st_size > length)) {
+		if (ftruncate(fd, length) < 0) {
+			return -1;
+		}
+	}
 
 	return 1;
 }
@@ -669,7 +672,10 @@ found:
 		}
 		memcpy(tmp_ptr2, l2_ptr, 4096);
 		lseek(s->fd, l2_offset + (l2_sector << 12), SEEK_SET);
-		write(s->fd, tmp_ptr2, 4096);
+		if (write(s->fd, tmp_ptr2, 4096) < 0) {
+			free(tmp_ptr2);
+			return -1;
+		}
 		free(tmp_ptr2);
 	}
 	return cluster_offset;
@@ -1149,20 +1155,25 @@ int tdqcow_close(struct td_state *bs)
 {
 	struct tdqcow_state *s = (struct tdqcow_state *)bs->private;
 	uint32_t cksum, out;
-	int fd, offset;
+	int fd, offset, ret = 0;
 
 	/*Update the hdr cksum*/
 	if(s->min_cluster_alloc == s->l2_size) {
 		cksum = gen_cksum((char *)s->l1_table, s->l1_size * sizeof(uint64_t));
-		printf("Writing cksum: %d",cksum);
-		fd = open(s->name, O_WRONLY | O_LARGEFILE); /*Open without O_DIRECT*/
+		if ((fd = open(s->name, O_WRONLY | O_LARGEFILE)) < 0) { /*Open without O_DIRECT*/
+			ret = -1;
+			goto cleanup;
+		}
 		offset = sizeof(QCowHeader) + sizeof(uint32_t);
 		lseek(fd, offset, SEEK_SET);
 		out = cpu_to_be32(cksum);
-		write(fd, &out, sizeof(uint32_t));
+		if ((ret = write(fd, &out, sizeof(uint32_t))) < 0) {
+			ret = -1;
+		}
 		close(fd);
 	}
 
+ cleanup:
 	free(s->name);
 	free(s->l1_table);
 	free(s->l2_cache);
@@ -1249,7 +1260,9 @@ int qcow_create(const char *filename, ui
 				strncpy(backing_filename, backing_file,
 					sizeof(backing_filename));
 			} else {
-				realpath(backing_file, backing_filename);
+			  	if (!realpath(backing_file, backing_filename)) {
+					return -1;
+				}
 				if (stat(backing_filename, &st) != 0) {
 					return -1;
 				}
Only in xen-3.0.4_1-src-new/tools/blktap/drivers: block-qcow.c~
diff -rup xen-3.0.4_1-src/tools/blktap/drivers/block-vmdk.c xen-3.0.4_1-src-new/tools/blktap/drivers/block-vmdk.c
--- xen-3.0.4_1-src/tools/blktap/drivers/block-vmdk.c	2007-01-08 10:00:47.000000000 -0500
+++ xen-3.0.4_1-src-new/tools/blktap/drivers/block-vmdk.c	2007-01-11 11:02:07.000000000 -0500
@@ -268,8 +268,10 @@ static uint64_t get_cluster_offset(struc
         	if (!allocate)
             		return 0;
         	cluster_offset = lseek(prv->fd, 0, SEEK_END);
-        	ftruncate(prv->fd, cluster_offset + 
-			  (prv->cluster_sectors << 9));
+        	if (ftruncate(prv->fd, cluster_offset + 
+			      (prv->cluster_sectors << 9)) < 0) {
+			return 0;
+		}
         	cluster_offset >>= 9;
         	/* update L2 table */
         	tmp = cpu_to_le32(cluster_offset);
Only in xen-3.0.4_1-src-new/tools/blktap/drivers: block-vmdk.c~