A contract meant to custody NFTs does not implement IERC721Receiver, so safeTransferFrom into it reverts (locking flows) or, if it implements it incautiously, opens a reentrancy/acceptance hole.
function onERC721Received(address,address,uint256,bytes calldata)
external pure returns (bytes4){ return IERC721Receiver.onERC721Received.selector; }
The SaferICO scanner runs 201 detectors over your Solidity source, SAFE-0091 among them. Paste an address or the source itself — a small per-scan fee, shown before you sign, or unlimited on any plan.