fix: close remaining PR 208 review findings
CI / lint (pull_request) Failing after 33s
CI / build-and-test (pull_request) Has been skipped
CI / sanitizers (address) (pull_request) Has been skipped
CI / sanitizers (undefined) (pull_request) Has been skipped
CI / fuzz-build (pull_request) Has been skipped
CI / coverage (pull_request) Has been skipped
CI / valgrind (pull_request) Has been skipped
CI / lint (pull_request) Failing after 33s
CI / build-and-test (pull_request) Has been skipped
CI / sanitizers (address) (pull_request) Has been skipped
CI / sanitizers (undefined) (pull_request) Has been skipped
CI / fuzz-build (pull_request) Has been skipped
CI / coverage (pull_request) Has been skipped
CI / valgrind (pull_request) Has been skipped
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
#include "multiprocessing.h"
|
||||
|
||||
#include "array_list.h"
|
||||
#include "chunk.h"
|
||||
#include "config.h"
|
||||
@@ -13,6 +14,10 @@
|
||||
#include <string.h>
|
||||
#include <threads.h>
|
||||
|
||||
static bool valid_batch_path(const char* path) {
|
||||
return path && path[0] != '\0' && path[0] != '/' && !has_path_traversal(path);
|
||||
}
|
||||
|
||||
PipelineContextSender* pipeline_context_sender_create(Config* config, Queue* queue_scanner,
|
||||
Queue* queue_loader) {
|
||||
PipelineContextSender* context = malloc(sizeof(PipelineContextSender));
|
||||
@@ -221,6 +226,12 @@ int receive_thread(void* pipeline_context) {
|
||||
free(check_path);
|
||||
RECEIVE_THREAD_FAIL();
|
||||
}
|
||||
if (!valid_batch_path(check_path)) {
|
||||
free(check_path);
|
||||
if (!send_status(file_descriptor, STATUS_ERROR))
|
||||
RECEIVE_THREAD_FAIL();
|
||||
RECEIVE_THREAD_FAIL();
|
||||
}
|
||||
char* full_path = path_cat(config->receive_root_directory, check_path);
|
||||
struct stat st;
|
||||
bool has_old = full_path && lstat(full_path, &st) == 0;
|
||||
|
||||
Reference in New Issue
Block a user