GUACAMOLE-462: Merge create recordings/typescripts with group read permission.

This commit is contained in:
Virtually Nick 2022-02-17 12:43:51 -05:00 committed by GitHub
commit 9245d02bc5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 9 additions and 7 deletions

View File

@ -84,7 +84,7 @@ static int guac_common_recording_open(const char* path,
/* Attempt to open recording */ /* Attempt to open recording */
int fd = open(basename, int fd = open(basename,
O_CREAT | O_EXCL | O_WRONLY, O_CREAT | O_EXCL | O_WRONLY,
S_IRUSR | S_IWUSR); S_IRUSR | S_IWUSR | S_IRGRP);
/* Continuously retry with alternate names on failure */ /* Continuously retry with alternate names on failure */
if (fd == -1) { if (fd == -1) {
@ -103,7 +103,7 @@ static int guac_common_recording_open(const char* path,
/* Retry with newly-suffixed filename */ /* Retry with newly-suffixed filename */
fd = open(basename, fd = open(basename,
O_CREAT | O_EXCL | O_WRONLY, O_CREAT | O_EXCL | O_WRONLY,
S_IRUSR | S_IWUSR); S_IRUSR | S_IWUSR | S_IRGRP);
} }
@ -144,7 +144,8 @@ guac_common_recording* guac_common_recording_create(guac_client* client,
/* Create path if it does not exist, fail if impossible */ /* Create path if it does not exist, fail if impossible */
#ifndef __MINGW32__ #ifndef __MINGW32__
if (create_path && mkdir(path, S_IRWXU) && errno != EEXIST) { if (create_path && mkdir(path, S_IRWXU | S_IRGRP | S_IXGRP)
&& errno != EEXIST) {
#else #else
if (create_path && _mkdir(path) && errno != EEXIST) { if (create_path && _mkdir(path) && errno != EEXIST) {
#endif #endif

View File

@ -79,7 +79,7 @@ static int guac_terminal_typescript_open_data_file(const char* path,
/* Attempt to open typescript data file */ /* Attempt to open typescript data file */
int data_fd = open(basename, int data_fd = open(basename,
O_CREAT | O_EXCL | O_WRONLY, O_CREAT | O_EXCL | O_WRONLY,
S_IRUSR | S_IWUSR); S_IRUSR | S_IWUSR | S_IRGRP);
/* Continuously retry with alternate names on failure */ /* Continuously retry with alternate names on failure */
if (data_fd == -1) { if (data_fd == -1) {
@ -98,7 +98,7 @@ static int guac_terminal_typescript_open_data_file(const char* path,
/* Retry with newly-suffixed filename */ /* Retry with newly-suffixed filename */
data_fd = open(basename, data_fd = open(basename,
O_CREAT | O_EXCL | O_WRONLY, O_CREAT | O_EXCL | O_WRONLY,
S_IRUSR | S_IWUSR); S_IRUSR | S_IWUSR | S_IRGRP);
} }
@ -112,7 +112,8 @@ guac_terminal_typescript* guac_terminal_typescript_alloc(const char* path,
const char* name, int create_path) { const char* name, int create_path) {
/* Create path if it does not exist, fail if impossible */ /* Create path if it does not exist, fail if impossible */
if (create_path && mkdir(path, S_IRWXU) && errno != EEXIST) if (create_path && mkdir(path, S_IRWXU | S_IRGRP | S_IXGRP)
&& errno != EEXIST)
return NULL; return NULL;
/* Allocate space for new typescript */ /* Allocate space for new typescript */
@ -141,7 +142,7 @@ guac_terminal_typescript* guac_terminal_typescript_alloc(const char* path,
/* Attempt to open typescript timing file */ /* Attempt to open typescript timing file */
typescript->timing_fd = open(typescript->timing_filename, typescript->timing_fd = open(typescript->timing_filename,
O_CREAT | O_EXCL | O_WRONLY, O_CREAT | O_EXCL | O_WRONLY,
S_IRUSR | S_IWUSR); S_IRUSR | S_IWUSR | S_IRGRP);
if (typescript->timing_fd == -1) { if (typescript->timing_fd == -1) {
close(typescript->data_fd); close(typescript->data_fd);
free(typescript); free(typescript);