@@ -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