From 72c57e4f226bd468100a66c18fae8d88cedfd926 Mon Sep 17 00:00:00 2001
From: Michael Tuexen <tuexen@fh-muenster.de>
Date: Sun, 8 Oct 2017 09:16:33 +0200
Subject: [PATCH] Fix CID 187671.

---
 gtests/net/packetdrill/run_system_call.c | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/gtests/net/packetdrill/run_system_call.c b/gtests/net/packetdrill/run_system_call.c
index 753cb60a..2d888120 100644
--- a/gtests/net/packetdrill/run_system_call.c
+++ b/gtests/net/packetdrill/run_system_call.c
@@ -5449,7 +5449,10 @@ static int syscall_sctp_sendx(struct state *state, struct syscall_spec *syscall,
 		   addrs_expr->type == EXPR_SOCKET_ADDRESS_IPV6 ||
 		   addrs_expr->type == EXPR_ELLIPSIS) {
 		addrs = malloc(sizeof(struct sockaddr_storage));
-		get_sockstorage_arg(addrs_expr, (struct sockaddr_storage *)addrs, live_fd);
+		if (get_sockstorage_arg(addrs_expr, (struct sockaddr_storage *)addrs, live_fd)) {
+			asprintf(error, "can't determine addrs");
+			goto error_out;
+		}
 	} else if (addrs_expr->type == EXPR_LIST) {
 		size_t size;
 		if (get_sockaddr_from_list(addrs_expr,  &size, &addrs, error)) {
@@ -5540,7 +5543,10 @@ static int syscall_sctp_sendv(struct state *state, struct syscall_spec *syscall,
 	    addrs_expr->type == EXPR_SOCKET_ADDRESS_IPV6 ||
 	    addrs_expr->type == EXPR_ELLIPSIS) {
 		addrs = malloc(sizeof(struct sockaddr_storage));
-		get_sockstorage_arg(addrs_expr, (struct sockaddr_storage *)addrs, live_fd);
+		if (get_sockstorage_arg(addrs_expr, (struct sockaddr_storage *)addrs, live_fd)) {
+			asprintf(error, "can't determine addrs");
+			goto error_out;
+		}
 	} else if (addrs_expr->type == EXPR_LIST) {
 		size_t size;
 		if (get_sockaddr_from_list(addrs_expr, &size, &addrs, error)) {
-- 
GitLab