リングバッファ

usr.bin/telnet/ring.c 1.13
74
75  #define ring_decrement(d,a,c)   (((a)-(c) >= (d)->bottom)? \
76                                          (a)-(c) : (((a)-(c))-(d)->size))
77

は、

74
75  #define ring_decrement(d,a,c)   (((a)-(c) >= (d)->bottom)? \
76                                          (a)-(c) : (((a)-(c))+(d)->size))
77

じゃないかな。

(ring_decrement()を使っている)dosynch()が
ring->supply == ring->buttomのときに呼ばれるとやばいと思う。
(そんなタイミングで呼ばれるのかどうかよくわからんけど。)