adafruit/Adafruit_IO_Arduino

Buffer overrun on large data in feed save?

pete-thompson opened this issue · 3 comments

  • Arduino board: ESP32

  • Arduino IDE version (found in Arduino -> About Arduino menu): 1.8.13

  • List the steps to reproduce the problem below (if possible attach a sketch or
    copy the sketch code in too):

My sketch is rebooting frequently. The most recent thing that I've changed is to write long debug messages into an Adafruit IO feed. It appears that the messages are arriving in my feed, but with very odd values for lat/long (I don't set values so would expect 0,0). I read through the code in AdafruitIO_Data.cpp and see that it's using strcpy to copy the incoming data to the buffer without any checks for buffer overrun - so I'm guessing that if I send something longer than 45 characters I'm causing random issues that sometimes result in invalid pointer dereferences and reboots.

, but with very odd values for lat/long (I don't set values so would expect 0,0).

Do these odd values for lat/long show up on the feed's feed page on io.adafruit.com?

Yes, the values show in the feed. I can't find the specific values just now, but they were huge numbers that clearly weren't valid.

Could you file an issue at io.adafruit.com/support so we can take a look? Please include the name of the feed where this appeared.