Hi, On Thu, Mar 07, 2024 at 02:18:28AM -0500, neeshy wrote: > It seems that the modifications you made break the use case where su is > called without a username. It would normally default to the root > user, but now it invokes usage() instead. My original patch worked as > intended. Could you rebase using the original patch instead? Thank you. >
Sadly, I cannot rebase it as it is already in the central repository. What do you think about adding a new change like this: diff --git a/su.c b/su.c index eb8bea7..8eea82b 100644 --- a/su.c +++ b/su.c @@ -26,7 +26,7 @@ usage(void) int main(int argc, char *argv[]) { - char *usr = "root", *pass; + char *usr, *pass; char *shell, *envshell, *term; struct passwd *pw; char *newargv[3]; @@ -43,9 +43,14 @@ main(int argc, char *argv[]) usage(); } ARGEND; - if (argc != 1) + if (argc > 1) usage(); - usr = argv[0]; + usr = argc > 0 ? argv[0] : "root"; errno = 0; pw = getpwnam(usr); I think it makes it simpler while keeping the correct behaviour that I broke. Kind Regards, Roberto Vargas