]> git.apps.os.sepia.ceph.com Git - xfstests-dev.git/commitdiff
fstests: fstest.c, fix compile warnings replace sprintf with snprintf
authorAnand Jain <anand.jain@oracle.com>
Sun, 29 Jan 2023 02:42:31 +0000 (10:42 +0800)
committerZorro Lang <zlang@kernel.org>
Fri, 3 Feb 2023 18:06:30 +0000 (02:06 +0800)
Fixes the buffer overflow warnings, by using snprintf instead of
sprintf.

fstest.c:95:20: warning: '/file' directive writing 5 bytes into a region of size between 1 and 1024 [-Wformat-overflow=]
  sprintf(fname, "%s/file%d", dir, fnum);
                    ^~~~~
fstest.c:166:20: warning: '/file' directive writing 5 bytes into a region of size between 1 and 1024 [-Wformat-overflow=]
  sprintf(fname, "%s/file%d", dir, fnum);

Signed-off-by: Anand Jain <anand.jain@oracle.com>
Reviewed-by: Bill O'Donnell <bodonnel@redhat.com>
Signed-off-by: Zorro Lang <zlang@kernel.org>
src/fstest.c

index e4b9e081144a9401a84c81aea81ed1f3e61413c6..4f6dc643dd12fa49a385aa047de1d51ba9de483c 100644 (file)
@@ -88,11 +88,16 @@ static void check_buffer(uchar *buf, int loop, int child, int fnum, int ofs)
 static void create_file(const char *dir, int loop, int child, int fnum)
 {
        char *buf;
-       int size, fd;
+       int size, fd, ret;
        char fname[1024];
 
        buf = x_malloc(block_size);
-       sprintf(fname, "%s/file%d", dir, fnum);
+       ret = snprintf(fname, sizeof(fname), "%s/file%d", dir, fnum);
+       if (ret < 0 || ret >= sizeof(fname)) {
+               fprintf(stderr,"file path '%s' too long %d\n", dir, ret);
+               exit(1);
+       }
+
        fd = open(fname, O_RDWR|O_CREAT|O_TRUNC | (use_sync?O_SYNC:0), 0644);
        if (fd == -1) {
                perror(fname);
@@ -158,12 +163,16 @@ bozo!
 static void check_file(const char *dir, int loop, int child, int fnum)
 {
        uchar *buf;
-       int size, fd;
+       int size, fd, ret;
        char fname[1024];
 
        buf = x_malloc(block_size);
 
-       sprintf(fname, "%s/file%d", dir, fnum);
+       ret = snprintf(fname, sizeof(fname), "%s/file%d", dir, fnum);
+       if (ret < 0 || ret >= sizeof(fname)) {
+               fprintf(stderr,"file path is '%s' too long %d\n", dir, ret);
+               exit(1);
+       }
        fd = open(fname, O_RDONLY);
        if (fd == -1) {
                perror(fname);