/usr/bin/diff - incorrectly says files are identical
Jamie Landeg-Jones
jamie at catflap.org
Tue Jan 12 17:04:22 UTC 2021
When diff hits certain access errors, function diffreg() shows the error message, and then returns to the calling function, which calls print_status() with the return value.
However, in these cases, the return value isn't changed from the initial default value of D_SAME.
Normally, print_status() with a value of D_SAME does nothing, so this works out ok, however, if the "-s" flag is set, a message is displayed showing identicality:
case D_SAME:
if (sflag)
printf("Files %s%s and %s%s are identical\n", path1, entry, path2, entry);
break;
This then produces such results as:
% diff -s /COPYRIGHT /var/run/rpcbind.sock
diff: /var/run/rpcbind.sock: Operation not supported
Files /COPYRIGHT and /var/run/rpcbind.sock are identical
% diff -s /COPYRIGHT /etc/master.passwd
diff: /etc/master.passwd: Permission denied
Files /COPYRIGHT and /etc/master.passwd are identical
Further details, and fixing patch here: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=252614
Cheers, Jamie
More information about the freebsd-current
mailing list