res_crypto.c: Avoid using the non-portable ALLPERMS macro.
ALLPERMS is not POSIX and it's trivial enough to not jump through autoconf hoops to check for it. Fixes #149.
This commit is contained in:
parent
4a637d6d11
commit
ebc007322b
|
@ -217,10 +217,15 @@ static struct ast_key *try_load_key(const char *dir, const char *fname, int ifd,
|
|||
return NULL;
|
||||
}
|
||||
|
||||
/* FILE_MODE_BITS is a bitwise OR of all possible file mode bits encoded in
|
||||
* the `st_mode` member of `struct stat`. For POSIX compatible systems this
|
||||
* will be 07777. */
|
||||
#define FILE_MODE_BITS (S_ISUID|S_ISGID|S_ISVTX|S_IRWXU|S_IRWXG|S_IRWXO)
|
||||
|
||||
/* only user read or read/write modes allowed */
|
||||
if (ktype == AST_KEY_PRIVATE &&
|
||||
((st.st_mode & ALLPERMS) & ~(S_IRUSR | S_IWUSR)) != 0) {
|
||||
ast_log(LOG_ERROR, "Private key file has bad permissions: %s: %#4o\n", ffname, st.st_mode & ALLPERMS);
|
||||
((st.st_mode & FILE_MODE_BITS) & ~(S_IRUSR | S_IWUSR)) != 0) {
|
||||
ast_log(LOG_ERROR, "Private key file has bad permissions: %s: %#4o\n", ffname, st.st_mode & FILE_MODE_BITS);
|
||||
fclose(f);
|
||||
return NULL;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue