If it's done by the AI, presumably-involved part of the code in RepairYard.cpp:
pCarryall->setDestination(pRepairUnit->getGuardPoint());
Unhandled exception at 0x00007FF6997A62DC in DuneLegacy.exe: 0xC0000005: Access violation reading location 0x00000000000000B0.
Quick on-site remedy: turning Manual Carryall Drops game option off.
The attached save file reproduces this error. After a few seconds a carryall tries to pick up a vehicle, which is not in repair yard (anymore?) leading to a segmentation fault on linux.
I am working on a fix.
Fix is available on branch
bug-101-crash-pickup-repaired-unit
.