Commit Graph

10 Commits

Author SHA1 Message Date
Ying Xie
2133808ae2
[202012] Package debugging and hardening for dhcpmon and dhcp6relay (#9862) (#9960)
Enable dbgsym package for dhcpmon.

Allow CFLAGS and LDFLAGS from environment variables to be used
in the dhcp6relay build. This makes sure that the -O2 flag from
dpkg-buildflags gets used.

Finally, enable all hardening flags in dpkg-buildflags for
dhcp6relay and dhcpmon. The change from the default set of flags is that
during linking, immediate binding of symbols is done instead of lazy
binding.

Signed-off-by: Saikrishna Arcot <sarcot@microsoft.com>

Co-authored-by: Saikrishna Arcot <sarcot@microsoft.com>
2022-02-10 20:56:28 -08:00
kellyyeh
47e6f32d9e [dhcp6relay] Support relaying Relay-Forward message (#9887) 2022-02-08 19:07:14 +00:00
kellyyeh
67f718f83e [dhcp_relay] Check payload size to prevent buffer overflow in dhcpv6 option (#9740) 2022-01-31 20:09:10 +00:00
Ying Xie
5afef51b1b [dhcp6relay] a couple memory access protections (#9851)
Why I did it
the strcpy and buffer allocation is not safe, it corrupts 1 byte on the stack. Depending on the memory layout, it may or may not cause issue immediately.
message type is not validated before updating the counter. Which could cause segment fault.

How I did it
Remove the unsafe strcpy, use config->interface.c_str() instead.
Check message type before updating counters.

How to verify it
The issue (1) caused segment fault on a specific platform. The fix was validated there. Issue (2) was precautionary. Added log in case it triggers.
2022-01-31 20:08:57 +00:00
Saikrishna Arcot
9129827743 dhcp6relay: Save the dbgsym package into the target folder (#9013)
This makes it possible to install the debug symbols if needed. Also install
the package into the debug version of sonic-dhcp-relay container.

Signed-off-by: Saikrishna Arcot <sarcot@microsoft.com>
2022-01-25 22:17:35 +00:00
kellyyeh
006582b3e2
[dhcp_relay] Update DHCPv6 counter on relayed messages (#9283) (#9578)
(cherry picked from commit f2ee94d201)
2021-12-17 11:56:01 -08:00
kellyyeh
2cbe6a7502 DHCPv6 Relay multivlan functionality support (#9178)
Fix support for DHCPV6 Relay multi vlan functionality. Make sure the relayed packet is received at correct interface.

How I did it
Bind a socket to each vlan interface's global and link-local address.
Socket binded to global address is used for relaying data from client to server and receiving data from servers.
Socket binded to link-local address is used for relaying data received from server back to the client.
2021-11-15 21:31:58 +00:00
kellyyeh
d8dd68d2f4 Fix invalid destination address error (#9143) 2021-11-05 00:38:36 +00:00
kellyyeh
517d81a57a [dhcp_relay] fix data type in dhcp6relay, add protection in packet data parsing (#9036) 2021-10-22 17:14:35 +00:00
kellyyeh
a4b6788b4b
Replace isc-dhcp with DHCPv6 Relay in dhcp_relay docker (#8884) 2021-10-01 19:55:03 -07:00