Skip to content

Commit

Permalink
add ability to bypass shebang redirection
Browse files Browse the repository at this point in the history
  • Loading branch information
sunflsks committed Aug 30, 2021
1 parent 7fb65d7 commit fd6306b
Showing 1 changed file with 11 additions and 5 deletions.
16 changes: 11 additions & 5 deletions get_new_argv.c
Original file line number Diff line number Diff line change
Expand Up @@ -75,14 +75,20 @@ char** get_new_argv(const char* path, char* const argv[]) {
char* interp = token;
char* arg_to_interpreter = strtok_r(NULL, "", &state);

if (!strncmp(interp, "/bin", strlen("/bin")) || !strncmp(interp, "/usr/bin", strlen("/usr/bin"))) {
char* interp_redirected = calloc(strlen(interp) + strlen(SHEBANG_REDIRECT_PATH) + 1, 1);
strcat(strcat(interp_redirected, SHEBANG_REDIRECT_PATH), interp);
argv_new[0] = interp_redirected;
if (strncmp(interp, "/noredirect", strlen("/noredirect"))) {
if (!strncmp(interp, "/bin", strlen("/bin")) || !strncmp(interp, "/usr/bin", strlen("/usr/bin"))) {
char* interp_redirected = calloc(strlen(interp) + strlen(SHEBANG_REDIRECT_PATH) + 1, 1);
strcat(strcat(interp_redirected, SHEBANG_REDIRECT_PATH), interp);
argv_new[0] = interp_redirected;
}

else {
argv_new[0] = strdup(interp);
}
}

else {
argv_new[0] = strdup(interp);
argv_new[0] = strdup(interp + strlen("/noredirect"));
}

if (arg_to_interpreter != NULL) {
Expand Down

1 comment on commit fd6306b

@CRKatri
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we get a prelease?

Please sign in to comment.