diff --git a/gtests/net/packetdrill/sctp_packet.c b/gtests/net/packetdrill/sctp_packet.c
index 144cad39411208817c6da1227f65184e8113cbb0..cba5fce979775bb19ae9b6edb912cade20109b14 100644
--- a/gtests/net/packetdrill/sctp_packet.c
+++ b/gtests/net/packetdrill/sctp_packet.c
@@ -1001,10 +1001,12 @@ sctp_heartbeat_chunk_new(s64 flgs, struct sctp_parameter_list_item *info)
 		chunk->flags = (u8)flgs;
 	}
 	chunk->length = htons(chunk_length);
-	memcpy(chunk->value, info->parameter, info->length);
-	memset(chunk->value + info->length, 0, padding_length);
-	free(info->parameter);
-	free(info);
+	if (info != NULL) {
+		memcpy(chunk->value, info->parameter, info->length);
+		memset(chunk->value + info->length, 0, padding_length);
+		free(info->parameter);
+		free(info);
+	}
 	return sctp_chunk_list_item_new((struct sctp_chunk *)chunk,
 	                                chunk_length + padding_length,
 	                                flags, sctp_parameter_list_new(),