There are two problems for ripd implementation after received SIGHUP signal: 1). ripd didn't clean up ifp->connected list before reload configuration file. 2). ripd reset ri->split_horizon flag to RIP_NO_SPLIT_HORIZON, leading to the unnecessary route to be advertised. I have ever sent the fix to quagga-dev upstream, but no effective feedback is received: http://patchwork.diac24.net/patch/604/
patch has already been merged.