Skip to content

Commit 05c5c2f

Browse files
authored
[swss] Replace memset functions (#2423)
Signed-off-by: maipbui [email protected] What I did Replace memset() by memset_s() Why I did it memset() is an insecure function that can cause buffer overflow.
1 parent 9ff993d commit 05c5c2f

File tree

5 files changed

+60
-148
lines changed

5 files changed

+60
-148
lines changed

fpmsyncd/fpmlink.cpp

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ bool FpmLink::isRawProcessing(struct nlmsghdr *h)
3939
int len;
4040
short encap_type = 0;
4141
struct rtmsg *rtm;
42-
struct rtattr *tb[RTA_MAX + 1];
42+
struct rtattr *tb[RTA_MAX + 1] = {0};
4343

4444
rtm = (struct rtmsg *)NLMSG_DATA(h);
4545

@@ -54,7 +54,6 @@ bool FpmLink::isRawProcessing(struct nlmsghdr *h)
5454
return false;
5555
}
5656

57-
memset(tb, 0, sizeof(tb));
5857
netlink_parse_rtattr(tb, RTA_MAX, RTM_RTA(rtm), len);
5958

6059
if (!tb[RTA_MULTIPATH])
@@ -120,7 +119,7 @@ FpmLink::FpmLink(RouteSync *rsync, unsigned short port) :
120119
m_server_up(false),
121120
m_routesync(rsync)
122121
{
123-
struct sockaddr_in addr;
122+
struct sockaddr_in addr = {};
124123
int true_val = 1;
125124

126125
m_server_socket = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP);
@@ -141,7 +140,6 @@ FpmLink::FpmLink(RouteSync *rsync, unsigned short port) :
141140
throw system_error(errno, system_category());
142141
}
143142

144-
memset (&addr, 0, sizeof (addr));
145143
addr.sin_family = AF_INET;
146144
addr.sin_port = htons(port);
147145
addr.sin_addr.s_addr = htonl(INADDR_LOOPBACK);

fpmsyncd/routesync.cpp

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -347,7 +347,7 @@ bool RouteSync::getEvpnNextHop(struct nlmsghdr *h, int received_bytes,
347347
void RouteSync::onEvpnRouteMsg(struct nlmsghdr *h, int len)
348348
{
349349
struct rtmsg *rtm;
350-
struct rtattr *tb[RTA_MAX + 1];
350+
struct rtattr *tb[RTA_MAX + 1] = {0};
351351
void *dest = NULL;
352352
char anyaddr[16] = {0};
353353
char dstaddr[16] = {0};
@@ -360,7 +360,6 @@ void RouteSync::onEvpnRouteMsg(struct nlmsghdr *h, int len)
360360
rtm = (struct rtmsg *)NLMSG_DATA(h);
361361

362362
/* Parse attributes and extract fields of interest. */
363-
memset(tb, 0, sizeof(tb));
364363
netlink_parse_rtattr(tb, RTA_MAX, RTM_RTA(rtm), len);
365364

366365
if (tb[RTA_DST])

mclagsyncd/mclaglink.cpp

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1744,7 +1744,7 @@ MclagLink::MclagLink(Select *select, int port) :
17441744
m_server_up(false),
17451745
m_select(select)
17461746
{
1747-
struct sockaddr_in addr;
1747+
struct sockaddr_in addr = {};
17481748
int true_val = 1;
17491749

17501750
m_server_socket = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP);
@@ -1765,7 +1765,6 @@ MclagLink::MclagLink(Select *select, int port) :
17651765
throw system_error(errno, system_category());
17661766
}
17671767

1768-
memset(&addr, 0, sizeof(addr));
17691768
addr.sin_family = AF_INET;
17701769
addr.sin_port = htons((unsigned short int)port);
17711770
addr.sin_addr.s_addr = htonl(MCLAG_DEFAULT_IP);

0 commit comments

Comments
 (0)