The same change was done in bgpd and bgpctl. So here is bgplgd.
I replaced one bcopy() with memmove() since this is most probably an
overlapping memory move.
--
:wq Claudio
Index: qs.c
===================================================================
RCS file: /cvs/src/usr.sbin/bgplgd/qs.c,v
retrieving revision 1.1
diff -u -p -r1.1 qs.c
--- qs.c 28 Jun 2022 16:11:30 -0000 1.1
+++ qs.c 17 Aug 2022 15:17:27 -0000
@@ -148,7 +148,7 @@ valid_prefix(char *str)
p[0] = '\0';
}
- bzero(&hints, sizeof(hints));
+ memset(&hints, 0, sizeof(hints));
hints.ai_family = AF_UNSPEC;
hints.ai_socktype = SOCK_DGRAM;
hints.ai_flags = AI_NUMERICHOST;
Index: slowcgi.c
===================================================================
RCS file: /cvs/src/usr.sbin/bgplgd/slowcgi.c,v
retrieving revision 1.3
diff -u -p -r1.3 slowcgi.c
--- slowcgi.c 12 Aug 2022 13:24:30 -0000 1.3
+++ slowcgi.c 17 Aug 2022 15:18:50 -0000
@@ -387,7 +387,7 @@ slowcgi_listen(char *path, struct passwd
0)) == -1)
lerr(1, "slowcgi_listen: socket");
- bzero(&sun, sizeof(sun));
+ memset(&sun, 0, sizeof(sun));
sun.sun_family = AF_UNIX;
if (strlcpy(sun.sun_path, path, sizeof(sun.sun_path)) >=
sizeof(sun.sun_path))
@@ -681,7 +681,7 @@ slowcgi_request(int fd, short events, vo
/* Make space for further reads */
if (c->buf_len > 0) {
- bcopy(c->buf + c->buf_pos, c->buf, c->buf_len);
+ memmove(c->buf, c->buf + c->buf_pos, c->buf_len);
c->buf_pos = 0;
}
return;
@@ -789,11 +789,11 @@ parse_params(uint8_t *buf, uint16_t n, s
return;
}
- bcopy(buf, env_entry->key, name_len);
+ memcpy(env_entry->key, buf, name_len);
buf += name_len;
n -= name_len;
env_entry->key[name_len] = '\0';
- bcopy(buf, env_entry->val, val_len);
+ memcpy(env_entry->val, buf, val_len);
buf += val_len;
n -= val_len;
env_entry->val[val_len] = '\0';