Skip to content

Commit 039df0a

Browse files
committed
Allocate dyamic sized arrays
1 parent 9bf21b7 commit 039df0a

File tree

1 file changed

+6
-3
lines changed

1 file changed

+6
-3
lines changed

src/utility/HCI.cpp

+6-3
Original file line numberDiff line numberDiff line change
@@ -630,7 +630,7 @@ int HCIClass::sendAclPkt(uint16_t handle, uint8_t cid, uint8_t plen, void* data)
630630
uint16_t cid;
631631
} aclHdr = { HCI_ACLDATA_PKT, handle, uint8_t(plen + 4), plen, cid };
632632

633-
uint8_t txBuffer[sizeof(aclHdr) + plen];
633+
uint8_t *txBuffer = uint8_t*malloc(sizeof(aclHdr) + plen);
634634
memcpy(txBuffer, &aclHdr, sizeof(aclHdr));
635635
memcpy(&txBuffer[sizeof(aclHdr)], data, plen);
636636

@@ -648,7 +648,8 @@ int HCIClass::sendAclPkt(uint16_t handle, uint8_t cid, uint8_t plen, void* data)
648648

649649
_pendingPkt++;
650650
HCITransport.write(txBuffer, sizeof(aclHdr) + plen);
651-
651+
free(txBuffer);
652+
652653
return 0;
653654
}
654655

@@ -680,7 +681,7 @@ int HCIClass::sendCommand(uint16_t opcode, uint8_t plen, void* parameters)
680681
uint8_t plen;
681682
} pktHdr = {HCI_COMMAND_PKT, opcode, plen};
682683

683-
uint8_t txBuffer[sizeof(pktHdr) + plen];
684+
uint8_t *txBuffer = uint8_t*malloc(sizeof(pktHdr) + plen);
684685
memcpy(txBuffer, &pktHdr, sizeof(pktHdr));
685686
memcpy(&txBuffer[sizeof(pktHdr)], parameters, plen);
686687

@@ -705,6 +706,8 @@ int HCIClass::sendCommand(uint16_t opcode, uint8_t plen, void* parameters)
705706
poll();
706707
}
707708

709+
free(txBuffer);
710+
708711
return _cmdCompleteStatus;
709712
}
710713

0 commit comments

Comments
 (0)