version 1.36, 2015/12/29 19:04:46 |
version 1.37, 2018/09/28 18:21:52 |
|
|
const char *outfile = NULL; |
const char *outfile = NULL; |
char **diffargv, *diffprog = "diff", *filename1, *filename2, |
char **diffargv, *diffprog = "diff", *filename1, *filename2, |
*tmp1, *tmp2, *s1, *s2; |
*tmp1, *tmp2, *s1, *s2; |
|
unsigned int Fflag = 0; |
|
|
if (pledge("stdio rpath wpath cpath proc exec", NULL) == -1) |
|
err(2, "pledge"); |
|
|
|
/* |
/* |
* Process diff flags. |
* Process diff flags. |
*/ |
*/ |
|
|
break; |
break; |
case 'F': |
case 'F': |
diffargv[0] = diffprog = optarg; |
diffargv[0] = diffprog = optarg; |
|
Fflag = 1; |
break; |
break; |
case 'H': |
case 'H': |
diffargv[diffargc++] = "-H"; |
diffargv[diffargc++] = "-H"; |
|
|
|
|
filename1 = argv[0]; |
filename1 = argv[0]; |
filename2 = argv[1]; |
filename2 = argv[1]; |
|
|
|
if (!Fflag) { |
|
if (unveil(filename1, "r") == -1) |
|
err(2, "unveil"); |
|
if (unveil(filename2, "r") == -1) |
|
err(2, "unveil"); |
|
if (unveil(tmpdir, "rwc") == -1) |
|
err(2, "unveil"); |
|
if (unveil("/usr/bin/diff", "x") == -1) |
|
err(2, "unveil"); |
|
if (unveil(_PATH_BSHELL, "x") == -1) |
|
err(2, "unveil"); |
|
} |
|
if (pledge("stdio rpath wpath cpath proc exec", NULL) == -1) |
|
err(2, "pledge"); |
|
|
/* |
/* |
* Create temporary files for diff and sdiff to share if file1 |
* Create temporary files for diff and sdiff to share if file1 |