(doexecute): Use fname(). Simplify convoluted logic. Fix check for
empty argument. Improve error messages.
This commit is contained in:
parent
a81aaba83c
commit
43d66c7d87
1 changed files with 7 additions and 9 deletions
|
@ -266,23 +266,22 @@ doexecute(char *p, FILE *auxfi)
|
|||
char *tag;
|
||||
|
||||
tag = gettag(p);
|
||||
while (*p && isspace(*p))
|
||||
p++;
|
||||
if (tag == NULL) {
|
||||
fprintf(stderr,
|
||||
"WARNING! Server attempted unauthorized read of file %s\n",
|
||||
p);
|
||||
return;
|
||||
}
|
||||
if (p == NULL) {
|
||||
fprintf(stderr, "Null file to execute\n");
|
||||
free(tag);
|
||||
free(tag);
|
||||
|
||||
p = fname(p);
|
||||
if (*p == 0) {
|
||||
fprintf(stderr, "Need a file to execute\n");
|
||||
return;
|
||||
}
|
||||
if ((fd = open(p, O_RDONLY, 0)) < 0) {
|
||||
fprintf(stderr, "Can't open execute file\n");
|
||||
perror(p);
|
||||
free(tag);
|
||||
fprintf(stderr, "Can't open execute file %s: %s\n",
|
||||
p, strerror(errno));
|
||||
return;
|
||||
}
|
||||
/* copies 4k at a time to the socket */
|
||||
|
@ -296,7 +295,6 @@ doexecute(char *p, FILE *auxfi)
|
|||
* sendeof(sock);
|
||||
*/
|
||||
close(fd);
|
||||
free(tag);
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue