--- 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);