res_crypto: Memory issues and uninitialized variable errors

ASTERISK-30235

Change-Id: Ia1e326e7b52cd06fd5e6c9009e3e63193c92f6cd
This commit is contained in:
George Joseph
2022-09-16 08:58:40 -06:00
parent 4c5a2c4d56
commit 71de0babcc
2 changed files with 10 additions and 5 deletions

View File

@@ -316,9 +316,13 @@ void ast_test_set_result(struct ast_test *test, enum ast_test_result_state state
void ast_test_capture_free(struct ast_test_capture *capture)
{
if (capture) {
free(capture->outbuf);
/*
* Need to use ast_std_free because this memory wasn't
* allocated by the astmm functions.
*/
ast_std_free(capture->outbuf);
capture->outbuf = NULL;
free(capture->errbuf);
ast_std_free(capture->errbuf);
capture->errbuf = NULL;
}
capture->pid = -1;
@@ -330,6 +334,7 @@ int ast_test_capture_command(struct ast_test_capture *capture, const char *file,
int fd0[2] = { -1, -1 }, fd1[2] = { -1, -1 }, fd2[2] = { -1, -1 };
pid_t pid = -1;
int status = 0;
FILE *cmd = NULL, *out = NULL, *err = NULL;
memset(capture, 0, sizeof(*capture));
capture->pid = capture->exitcode = -1;
@@ -379,8 +384,6 @@ int ast_test_capture_command(struct ast_test_capture *capture, const char *file,
exit(1);
} else {
FILE *cmd = NULL, *out = NULL, *err = NULL;
char buf[BUFSIZ];
int wstatus, n, nfds;
fd_set readfds, writefds;