stress2: Use the proper type for the getopt(3) return value

On arm platforms "char" is typically unsigned, in which case the test
"(c = getopt(...)) != -1" does not behave as desired.

Reviewed by:	pho
MFC after:	1 week
Differential Revision:	https://reviews.freebsd.org/D45365
This commit is contained in:
Mark Johnston 2024-05-25 12:52:32 -04:00
parent 4c053c17f2
commit 568be71de3

View file

@ -85,8 +85,7 @@ main(int argc, char *argv[])
struct stat st; struct stat st;
off_t pos; off_t pos;
size_t size; size_t size;
int fd, i, times; int c, fd, i, times;
char c;
times = 1; times = 1;
size = 0; size = 0;
@ -126,18 +125,20 @@ main(int argc, char *argv[])
} }
for (i = 0; i < times; i++) { for (i = 0; i < times; i++) {
char ch;
pos = arc4random() % size; pos = arc4random() % size;
if (lseek(fd, pos, SEEK_SET) == -1) if (lseek(fd, pos, SEEK_SET) == -1)
err(1, "lseek()"); err(1, "lseek()");
if (read(fd, &c, 1) != 1) if (read(fd, &ch, 1) != 1)
err(1, "read()"); err(1, "read()");
if (arc4random() % 100 < 98) if (arc4random() % 100 < 98)
flip(&c, 1); flip(&ch, 1);
else else
trash(&c); trash(&ch);
if (lseek(fd, pos, SEEK_SET) == -1) if (lseek(fd, pos, SEEK_SET) == -1)
err(1, "lseek()"); err(1, "lseek()");
if (write(fd, &c, 1) != 1) if (write(fd, &ch, 1) != 1)
err(1, "write()"); err(1, "write()");
} }