[Asterisk-code-review] test: initialize capture structure before freeing (asterisk[18])

Philip Prindeville asteriskteam at digium.com
Fri Sep 23 12:11:11 CDT 2022


Philip Prindeville has uploaded this change for review. ( https://gerrit.asterisk.org/c/asterisk/+/19342 )


Change subject: test: initialize capture structure before freeing
......................................................................

test: initialize capture structure before freeing

ASTERISK-30232 #close

Change-Id: I2603e2cef8f93f6b0a6ef39f7eac744251bb3902
---
M include/asterisk/test.h
M main/test.c
M tests/test_crypto.c
3 files changed, 40 insertions(+), 2 deletions(-)



  git pull ssh://gerrit.asterisk.org:29418/asterisk refs/changes/42/19342/1

diff --git a/include/asterisk/test.h b/include/asterisk/test.h
index 12aed65..d2be92c 100644
--- a/include/asterisk/test.h
+++ b/include/asterisk/test.h
@@ -439,6 +439,16 @@
 })
 
 /*!
+ * \brief Initialize the capture structure.
+ *
+ * \since 16.30.0, 18.16.0, 19.8.0, 20.1.0
+ *
+ * \param capture The structure describing the child process and its
+ * associated output.
+ */
+void ast_test_capture_init(struct ast_test_capture *capture);
+
+/*!
  * \brief Release the storage (buffers) associated with capturing
  * the output of an external child process.
  *
diff --git a/main/test.c b/main/test.c
index 03de33b..f06b557 100644
--- a/main/test.c
+++ b/main/test.c
@@ -313,6 +313,12 @@
 	test->state = state;
 }
 
+void ast_test_capture_init(struct ast_test_capture *capture)
+{
+	capture->outbuf = capture->errbuf = NULL;
+	capture->pid = capture->exitcode = -1;
+}
+
 void ast_test_capture_free(struct ast_test_capture *capture)
 {
 	if (capture) {
@@ -336,8 +342,7 @@
 	int status = 0;
 	FILE *cmd = NULL, *out = NULL, *err = NULL;
 
-	memset(capture, 0, sizeof(*capture));
-	capture->pid = capture->exitcode = -1;
+	ast_test_capture_init(capture);
 
 	if (data != NULL && datalen > 0) {
 		if (pipe(fd0) == -1) {
diff --git a/tests/test_crypto.c b/tests/test_crypto.c
index a3a0004..1eec181 100644
--- a/tests/test_crypto.c
+++ b/tests/test_crypto.c
@@ -105,6 +105,8 @@
 
 	ast_test_status_update(test, "Executing RSA encryption test\n");
 
+	ast_test_capture_init(&cap);
+
 	if (!ast_check_command_in_path(command)) {
 		ast_test_status_update(test, "couldn't find %s\n", command);
 		return res;
@@ -190,6 +192,8 @@
 
 	ast_test_status_update(test, "Executing RSA decryption test\n");
 
+	ast_test_capture_init(&cap);
+
 	if (!ast_check_command_in_path(command)) {
 		ast_test_status_update(test, "couldn't find %s\n", command);
 		return res;
@@ -285,6 +289,8 @@
 
 	ast_test_status_update(test, "Executing RSA signing test\n");
 
+	ast_test_capture_init(&cap);
+
 	if (!ast_check_command_in_path(command)) {
 		ast_test_status_update(test, "couldn't find %s\n", command);
 		return res;
@@ -396,6 +402,8 @@
 
 	ast_test_status_update(test, "Executing RSA signature verification test\n");
 
+	ast_test_capture_init(&cap);
+
 	if (!ast_check_command_in_path(command)) {
 		ast_test_status_update(test, "couldn't find %s\n", command);
 		return res;
@@ -491,6 +499,8 @@
 
 	ast_test_status_update(test, "Executing AES-ECB encryption test\n");
 
+	ast_test_capture_init(&cap);
+
 	if (!ast_check_command_in_path(command)) {
 		ast_test_status_update(test, "couldn't find %s\n", command);
 		return res;
@@ -565,6 +575,8 @@
 
 	ast_test_status_update(test, "Executing AES-ECB decryption test\n");
 
+	ast_test_capture_init(&cap);
+
 	if (!ast_check_command_in_path(command)) {
 		ast_test_status_update(test, "couldn't find %s\n", command);
 		return res;

-- 
To view, visit https://gerrit.asterisk.org/c/asterisk/+/19342
To unsubscribe, or for help writing mail filters, visit https://gerrit.asterisk.org/settings

Gerrit-Project: asterisk
Gerrit-Branch: 18
Gerrit-Change-Id: I2603e2cef8f93f6b0a6ef39f7eac744251bb3902
Gerrit-Change-Number: 19342
Gerrit-PatchSet: 1
Gerrit-Owner: Philip Prindeville <philipp at redfish-solutions.com>
Gerrit-MessageType: newchange
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.digium.com/pipermail/asterisk-code-review/attachments/20220923/4907d363/attachment-0001.html>


More information about the asterisk-code-review mailing list