diff --git a/gtests/net/packetdrill/run_packet.c b/gtests/net/packetdrill/run_packet.c
index 0b8ca78c7bf011d9a3370c7f82208b54273c7741..efe7ad75c96c0389d043e59660a87973b3644111 100644
--- a/gtests/net/packetdrill/run_packet.c
+++ b/gtests/net/packetdrill/run_packet.c
@@ -3366,6 +3366,7 @@ static int do_inbound_script_packet(
 						if (packet->flags & FLAGS_UDP_ENCAPSULATED) {
 							struct udp *udp;
 
+							assert(i + 2 < PACKET_MAX_HEADERS);
 							assert(packet->headers[i + 1].type == HEADER_UDP);
 							assert(packet->headers[i + 2].type == HEADER_SCTP);
 							packet->headers[i].total_bytes += temp_offset;
@@ -3374,6 +3375,7 @@ static int do_inbound_script_packet(
 							udp = ((struct udp *)packet->sctp) - 1;
 							udp->len = htons(ntohs(udp->len) + temp_offset);
 						} else {
+							assert(i + 1 < PACKET_MAX_HEADERS);
 							assert(packet->headers[i + 1].type == HEADER_SCTP);
 							packet->headers[i].total_bytes += temp_offset;
 							packet->headers[i + 1].total_bytes += temp_offset;