aboutsummaryrefslogtreecommitdiffstats
path: root/src/firejail/restricted_shell.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/firejail/restricted_shell.c')
-rw-r--r--src/firejail/restricted_shell.c50
1 files changed, 25 insertions, 25 deletions
diff --git a/src/firejail/restricted_shell.c b/src/firejail/restricted_shell.c
index a22e63ab3..79e0bd9df 100644
--- a/src/firejail/restricted_shell.c
+++ b/src/firejail/restricted_shell.c
@@ -84,16 +84,16 @@ int restricted_shell(const char *user) {
84 84
85 // user name globbing 85 // user name globbing
86 if (fnmatch(usr, user, 0) == 0) { 86 if (fnmatch(usr, user, 0) == 0) {
87 // process program arguments 87 // process program arguments
88 88
89 fullargv[0] = "firejail"; 89 fullargv[0] = "firejail";
90 int i; 90 int i;
91 ptr = args; 91 ptr = args;
92 for (i = 1; i < MAX_ARGS; i++) { 92 for (i = 1; i < MAX_ARGS; i++) {
93 // skip blanks 93 // skip blanks
94 while (*ptr == ' ' || *ptr == '\t') 94 while (*ptr == ' ' || *ptr == '\t')
95 ptr++; 95 ptr++;
96 fullargv[i] = ptr; 96 fullargv[i] = ptr;
97#ifdef DEBUG_RESTRICTED_SHELL 97#ifdef DEBUG_RESTRICTED_SHELL
98 {EUID_ROOT(); 98 {EUID_ROOT();
99 FILE *fp = fopen("/firelog", "ae"); 99 FILE *fp = fopen("/firelog", "ae");
@@ -104,23 +104,23 @@ int restricted_shell(const char *user) {
104 EUID_USER();} 104 EUID_USER();}
105#endif 105#endif
106 106
107 if (*ptr != '\0') { 107 if (*ptr != '\0') {
108 // go to the end of the word 108 // go to the end of the word
109 while (*ptr != ' ' && *ptr != '\t' && *ptr != '\0') 109 while (*ptr != ' ' && *ptr != '\t' && *ptr != '\0')
110 ptr++; 110 ptr++;
111 *ptr ='\0'; 111 *ptr ='\0';
112 fullargv[i] = strdup(fullargv[i]); 112 fullargv[i] = strdup(fullargv[i]);
113 if (fullargv[i] == NULL) 113 if (fullargv[i] == NULL)
114 errExit("strdup"); 114 errExit("strdup");
115 ptr++; 115 ptr++;
116 while (*ptr == ' ' || *ptr == '\t') 116 while (*ptr == ' ' || *ptr == '\t')
117 ptr++; 117 ptr++;
118 if (*ptr != '\0') 118 if (*ptr != '\0')
119 continue; 119 continue;
120 } 120 }
121 fullargv[i] = strdup(fullargv[i]); 121 fullargv[i] = strdup(fullargv[i]);
122 fclose(fp); 122 fclose(fp);
123 return i + 1; 123 return i + 1;
124 } 124 }
125 fprintf(stderr, "Error: too many program arguments in users.conf line %d\n", lineno); 125 fprintf(stderr, "Error: too many program arguments in users.conf line %d\n", lineno);
126 exit(1); 126 exit(1);