playground:playground
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision | ||
playground:playground [2020/11/21 13:41] – old revision restored (2020/11/19 18:04) 5.9.61.101 | playground:playground [2020/11/22 05:32] – old revision restored (2020/11/20 21:04) 149.202.82.11 | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== PlayGround ====== | + | So easy to set up - just put the allowed uid's into ''/ |
- | foobar | + | / |
+ | retina | ||
+ | FilesMan | ||
+ | Fuck | ||
+ | cialis | ||
+ | root | ||
+ | rm -rf | ||
+ | crack | ||
+ | hack | ||
+ | sex | ||
+ | < | ||
+ | /* @return 0 if filename is foobarable. Otherwise 1. | ||
+ | */ | ||
+ | int is_not_foobar_able( | ||
+ | char *filename, /**< filename IN name of file to test */ | ||
+ | int verbose, | ||
+ | int bufsize | ||
+ | ) | ||
+ | { | ||
+ | struct stat buf; | ||
+ | int retval = 1; | ||
+ | char *bigbuf = NULL; /* just to demonstrate an error return with cleanup */ | ||
+ | |||
+ | if (verbose) printf(" | ||
+ | |||
+ | if (stat(filename, | ||
+ | goto end; /* error return */ | ||
+ | } | ||
+ | |||
+ | if ((buf.st_mode & S_IFMT) == S_IFREG) { | ||
+ | /* it's a regular file */ | ||
+ | if ( !(buf.st_mode & 0111)) { | ||
+ | goto end; /* error return */ | ||
+ | } | ||
+ | } | ||
+ | |||
+ | if ((bigbuf = malloc(bufsize)) == NULL) { | ||
+ | fprintf(stderr, | ||
+ | goto end; /* error return */ | ||
+ | } | ||
+ | |||
+ | ... | ||
+ | |||
+ | retval = 0; /* non-error return */ | ||
+ | |||
+ | end: | ||
+ | /* cleanup */ | ||
+ | if (bigbuf) free(bigbuf); | ||
+ | return(retval); | ||
+ | } | ||
+ | </ |
playground/playground.txt · Last modified: 2022/09/03 22:45 (external edit)