While I was working on the extra+port stuff I had the following code bool new_interface; ... new_interface = update_interfaces_phase1(NTP_PORT); if (extra_port) new_interface |= update_interfaces_phase1(extra_port);
Note that there is no initialization on new_interface. I wanted to reverse the order of that pair of calls. So I just moved 2 lines up. That gives this code. bool new_interface; ... if (extra_port) new_interface |= update_interfaces_phase1(extra_port); new_interface = update_interfaces_phase1(NTP_PORT); There are 2 bugs in there. I didn't initialize new_interface and I left the last line as an = rather than changing t to an |= Fedora, Debian, and Ubuntu didn't complain. FreeBSD complained: uninitialized variable on the |=. The |= is working on an uninitialized variable. But the following line "fixes" whatever was there. Here is the correct code. static bool update_interfaces(void) { bool new_interface = false; update_interfaces_phase0(); if (extra_port) /* do first so our requests are sent from extra_port */ new_interface |= update_interfaces_phase1(extra_port); new_interface |= update_interfaces_phase1(NTP_PORT); update_interfaces_phase2(); update_interfaces_phase3(); return new_interface; } -- These are my opinions. I hate spam. _______________________________________________ devel mailing list devel@ntpsec.org https://lists.ntpsec.org/mailman/listinfo/devel