--- fsx.c.orig 2010-02-21 22:57:09.000000000 +0100
+++ fsx.c 2010-02-21 22:43:05.000000000 +0100
@@ -190,6 +190,9 @@
va_start(args, fmt);
vfprintf(stdout, fmt, args);
+ va_end(args);
+
+ va_start(args, fmt);
if (fsxlogf)
vfprintf(fsxlogf, fmt, args);
va_end(args);
@@ -198,7 +201,7 @@
void
prterr(const char *prefix)
{
- prt("%s%s%s\n", prefix, prefix ? ": " : "", strerror(errno));
+ prt("%s%s%s\n", prefix ? prefix : "", prefix ? ": " : "", strerror(errno));
}
@@ -701,12 +704,12 @@
if ((p = (char *)mmap(0, map_size, PROT_READ | PROT_WRITE,
MAP_FILE | MAP_SHARED, fd,
- (off_t)(offset - pg_offset))) == (char *)-1) {
+ (off_t)(offset - pg_offset))) == MAP_FAILED) {
prterr("domapwrite: mmap");
report_failure(202);
}
memcpy(p + pg_offset, good_buf + offset, size);
- if (msync(p, map_size, 0) != 0) {
+ if (msync(p, map_size, MS_SYNC) != 0) {
prterr("domapwrite: msync");
report_failure(203);
}
@@ -1141,6 +1144,7 @@
for (i = 0; i < maxfilelen; i++)
original_buf[i] = random() % 256;
good_buf = (char *) malloc(maxfilelen);
+ if (good_buf == NULL) errx(1,"malloc(%d)\n",maxfilelen);
memset(good_buf, '\0', maxfilelen);
temp_buf = (char *) malloc(maxoplen);
memset(temp_buf, '\0', maxoplen);