I have been working on integrating our software package running in OpenWRT onto a 32 bit PC Engines Alix box. The box is old and no longer produced (and yes, I will be posting a similar message on the openwrt forums).
Now, I will begin by saying we are supporting our package in OpenWRT on a variety of 64 bit ARM and x86-64 platforms and in all cases the command I will show here works perfectly on those 64 bit platforms. It is, however, failing on 32 bit...and it fails identically the same way on both OpenWRT 32 bit and on Mageia 8 32 bit. It looks a lot like a buffer overflow in curl.
Basically, this command:
cat /tmp/diag.txt | curl -s -v --retry 1 --max-time 30 -X POST --data-binary '@-' "http:/mydest.com/api/diagnostics/00-0d-b9-3d-43-82"
and variants such as
curl -s -v --retry 1 --max-time 30 -X POST --data-binary "@/tmp/diag.txt" "https://myencrypteddest.com/api/diagnostics/00-0d-b9-3d-43-82"
are failing to send the file /tmp/diag.txt, which is a json file that (in my test case) is about 92K and could be as much as a couple hundred K.
The file is being sent, up to a certain point. I have not counted bytes at this time but it is somewhere around 64K that gets sent, then curl goes off the rails. Watching it in wireshark reveals that, after shipping a certain very specific number of bytes, it then starts resending, and resends a number of times until the other end tells it to shut up.
Running the same commands in a 64 bit system show the entire file being transmitted without issue.
My need to support these Alix systems is only us providing legacy support. I am not sure how many of them we have in the field right now. We are somewhat reluctant to abandon the platform, but this curl problem is critical. Does anyone have any suggestions?