Make run from a long base path will overflow the argv0 buffer during
tests. Otherwise, this would happen for all the standalone binaries that
use set_argv0.
Original report:
https://bbs.archlinux.org/viewtopic.php?id=189861
Reported-by: WorMzy Tykashi <wormzy.tykashi@gmail.com>
Signed-off-by: David Sterba <dsterba@suse.cz>
void set_argv0(char **argv)
{
- sprintf(argv0_buf, "%s", argv[0]);
+ strncpy(argv0_buf, argv[0], sizeof(argv0_buf));
+ argv0_buf[sizeof(argv0_buf) - 1] = 0;
}
int check_argc_exact(int nargs, int expected)
#define BTRFS_UUID_UNPARSED_SIZE 37
-#define ARGV0_BUF_SIZE 64
+#define ARGV0_BUF_SIZE PATH_MAX
int check_argc_exact(int nargs, int expected);
int check_argc_min(int nargs, int expected);