diff --git a/src/modules/uavcan/libuavcan b/src/modules/uavcan/libuavcan index ed47da5b2a..dcbb573972 160000 --- a/src/modules/uavcan/libuavcan +++ b/src/modules/uavcan/libuavcan @@ -1 +1 @@ -Subproject commit ed47da5b2af550fd353680c3a9c03b774d0017fd +Subproject commit dcbb573972f80343ee68eed743506ac09605de3b diff --git a/src/modules/uavcan/uavcan_main.cpp b/src/modules/uavcan/uavcan_main.cpp index 926e7e285f..2655328598 100644 --- a/src/modules/uavcan/uavcan_main.cpp +++ b/src/modules/uavcan/uavcan_main.cpp @@ -1458,11 +1458,13 @@ int uavcan_main(int argc, char *argv[]) int rv = inst->fw_server(UavcanNode::Stop); + /* Let's recover any memory we can */ + + inst->shrink(); if (rv < 0) { warnx("Firmware Server Failed to Stop %d", rv); ::exit(rv); } - ::exit(0); } else {