Skip to content

Commit 0afeb2f

Browse files
committed
Allocate dyamic sized arrays
1 parent d6e8cd8 commit 0afeb2f

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
@@ -427,7 +427,7 @@ int HCIClass::sendAclPkt(uint16_t handle, uint8_t cid, uint8_t plen, void* data)
427427
uint16_t cid;
428428
} aclHdr = { HCI_ACLDATA_PKT, handle, uint8_t(plen + 4), plen, cid };
429429

430-
uint8_t txBuffer[sizeof(aclHdr) + plen];
430+
uint8_t *txBuffer = uint8_t*malloc(sizeof(aclHdr) + plen);
431431
memcpy(txBuffer, &aclHdr, sizeof(aclHdr));
432432
memcpy(&txBuffer[sizeof(aclHdr)], data, plen);
433433

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

438438
_pendingPkt++;
439439
HCITransport.write(txBuffer, sizeof(aclHdr) + plen);
440-
440+
free(txBuffer);
441+
441442
return 0;
442443
}
443444

@@ -469,7 +470,7 @@ int HCIClass::sendCommand(uint16_t opcode, uint8_t plen, void* parameters)
469470
uint8_t plen;
470471
} pktHdr = {HCI_COMMAND_PKT, opcode, plen};
471472

472-
uint8_t txBuffer[sizeof(pktHdr) + plen];
473+
uint8_t *txBuffer = uint8_t*malloc(sizeof(pktHdr) + plen);
473474
memcpy(txBuffer, &pktHdr, sizeof(pktHdr));
474475
memcpy(&txBuffer[sizeof(pktHdr)], parameters, plen);
475476

@@ -486,6 +487,8 @@ int HCIClass::sendCommand(uint16_t opcode, uint8_t plen, void* parameters)
486487
poll();
487488
}
488489

490+
free(txBuffer);
491+
489492
return _cmdCompleteStatus;
490493
}
491494

0 commit comments

Comments
 (0)