When converting a molecule to sdf, you can end up in an infinite loop around line 2804 of stereo/perception.cpp. This loop assumes that a certain atom is in an array, and in this case it isn't. This only happens if hydrogens were added to the input. This only affects 2.3.2 (2.3.1 doesn't have this loop).
You can reproduce the bug with the attached file and
babel -h in.sdf out.sdf
My fix for the bug was to add these lines after 2799 in perception.cpp:
if(implicit && std::find(test_cfg.refs.begin(), test_cfg.refs.end(), chosen->GetNbrAtom(center)->GetId()) == test_cfg.refs.end()) implicit = false;
but this is just a bandaid since I don't really know what's going on in this code.