52 |
int |
int |
53 |
wicket_create (wicket_t *pwicket, const char *filename) |
wicket_create (wicket_t *pwicket, const char *filename) |
54 |
{ |
{ |
55 |
|
struct stat st; |
56 |
|
|
57 |
if (pwicket == NULL) |
if (pwicket == NULL) |
58 |
return EINVAL; |
return EINVAL; |
59 |
|
|
60 |
|
if (filename) |
61 |
|
{ |
62 |
|
if (stat (filename, &st) == -1) |
63 |
|
return errno; |
64 |
|
if ((st.st_mode & S_IRWXG) || (st.st_mode & S_IRWXO)) |
65 |
|
return MU_ERR_UNSAFE_PERMS; |
66 |
|
} |
67 |
|
|
68 |
*pwicket = calloc (1, sizeof (**pwicket)); |
*pwicket = calloc (1, sizeof (**pwicket)); |
69 |
if (*pwicket == NULL) |
if (*pwicket == NULL) |
70 |
return ENOMEM; |
return ENOMEM; |
259 |
FILE *fp = NULL; |
FILE *fp = NULL; |
260 |
size_t buflen = 128; |
size_t buflen = 128; |
261 |
char *buf = NULL; |
char *buf = NULL; |
|
struct stat st; |
|
262 |
|
|
263 |
if (!filename || !url) |
if (!filename || !url) |
264 |
return EINVAL; |
return EINVAL; |
265 |
|
|
|
if (stat (filename, &st) == -1) |
|
|
return errno; |
|
|
if ((st.st_mode & S_IRWXG) || (st.st_mode & S_IRWXO)) |
|
|
return MU_ERR_UNSAFE_PERMS; |
|
|
|
|
266 |
fp = fopen (filename, "r"); |
fp = fopen (filename, "r"); |
267 |
|
|
268 |
if (!fp) |
if (!fp) |