Fix use-after-free: heap-allocate socket fd for RPC threads (#314)

RPC commands tested and working
This commit is contained in:
Levi Neely 2026-03-03 15:08:29 +01:00 committed by GitHub
parent bc943e5b69
commit 3240c033bb
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 10 additions and 1 deletions

View File

@ -122,6 +122,7 @@ static void on_request(void *lpvParam) {
cleanup:
if (sockfd) {
close(*sockfd);
free(sockfd);
}
if (response) {
free(response);
@ -265,10 +266,18 @@ void prpc_main_loop() {
continue;
}
int *cl_ptr = malloc(sizeof(int));
if (!cl_ptr) {
pdbg_logf(D_ERROR, "Failed to allocate memory for socket fd");
close(cl);
continue;
}
*cl_ptr = cl;
// handle the request in a new thread
prun_thread1("Pipe request handle routine",
on_request, // thread proc
(void *)&cl // thread parameter
(void *)cl_ptr // thread parameter
);
}