march@cs.uiuc.edu (Steve March) (06/22/91)
In the file ..../sys/netinet/in.c, in the routine in_sockmaskof(), the variable
mask is declared u_long (line 102) but is later assigned a negative value in
line 115. Doesn't look right to me.
-Steve
===============================================================================
Steve March (H) (217)328-5176/328-5230 (W) 333-7408
Domain: march@cs.uiuc.edu Path: {uunet|convex|pur-ee}!uiucdcs!march
"Time and space are modes by which we think and not conditions in which
we live." - Albert Einsteintorek@elf.ee.lbl.gov (Chris Torek) (06/24/91)
In article <1991Jun22.080642.27211@m.cs.uiuc.edu> march@cs.uiuc.edu (Steve March) writes: >In the file ..../sys/netinet/in.c, in the routine in_sockmaskof(), the >variable mask is declared u_long (line 102) but is later assigned a >negative value in line 115. Doesn't look right to me. The code in question is: register u_long mask; ... mask = -1; which is intended to set `mask' to all-ones. Since all the machines on which 4BSD runs are 2's complement, this is fine; it would, however, be better in some sense to use mask = ~0UL; so as to guarantee this result in all cases. Unfortunately, `U'-suffixed constants are not recognized by the 4.3-reno Vax and Tahoe C compilers. Perhaps `mask = ~0L' would suffice. :-) -- In-Real-Life: Chris Torek, Lawrence Berkeley Lab CSE/EE (+1 415 486 5427) Berkeley, CA Domain: torek@ee.lbl.gov