mirror of
https://github.com/torvalds/linux.git
synced 2026-04-18 06:44:00 -04:00
drbd: Replace deprecated strcpy with strscpy
strcpy() has been deprecated [1] because it performs no bounds checking on the destination buffer, which can lead to buffer overflows. Replace it with the safer strscpy(). No functional changes. Link: https://www.kernel.org/doc/html/latest/process/deprecated.html#strcpy [1] Signed-off-by: Thorsten Blum <thorsten.blum@linux.dev> Reviewed-by: Christoph Böhmwalder <christoph.boehmwalder@linbit.com> Signed-off-by: Jens Axboe <axboe@kernel.dk>
This commit is contained in:
committed by
Jens Axboe
parent
ab140365fb
commit
81b1f046ff
@@ -32,6 +32,7 @@
|
||||
#include <linux/memcontrol.h>
|
||||
#include <linux/mm_inline.h>
|
||||
#include <linux/slab.h>
|
||||
#include <linux/string.h>
|
||||
#include <linux/random.h>
|
||||
#include <linux/reboot.h>
|
||||
#include <linux/notifier.h>
|
||||
@@ -732,9 +733,9 @@ int drbd_send_sync_param(struct drbd_peer_device *peer_device)
|
||||
}
|
||||
|
||||
if (apv >= 88)
|
||||
strcpy(p->verify_alg, nc->verify_alg);
|
||||
strscpy(p->verify_alg, nc->verify_alg);
|
||||
if (apv >= 89)
|
||||
strcpy(p->csums_alg, nc->csums_alg);
|
||||
strscpy(p->csums_alg, nc->csums_alg);
|
||||
rcu_read_unlock();
|
||||
|
||||
return drbd_send_command(peer_device, sock, cmd, size, NULL, 0);
|
||||
@@ -745,6 +746,7 @@ int __drbd_send_protocol(struct drbd_connection *connection, enum drbd_packet cm
|
||||
struct drbd_socket *sock;
|
||||
struct p_protocol *p;
|
||||
struct net_conf *nc;
|
||||
size_t integrity_alg_len;
|
||||
int size, cf;
|
||||
|
||||
sock = &connection->data;
|
||||
@@ -762,8 +764,10 @@ int __drbd_send_protocol(struct drbd_connection *connection, enum drbd_packet cm
|
||||
}
|
||||
|
||||
size = sizeof(*p);
|
||||
if (connection->agreed_pro_version >= 87)
|
||||
size += strlen(nc->integrity_alg) + 1;
|
||||
if (connection->agreed_pro_version >= 87) {
|
||||
integrity_alg_len = strlen(nc->integrity_alg) + 1;
|
||||
size += integrity_alg_len;
|
||||
}
|
||||
|
||||
p->protocol = cpu_to_be32(nc->wire_protocol);
|
||||
p->after_sb_0p = cpu_to_be32(nc->after_sb_0p);
|
||||
@@ -778,7 +782,7 @@ int __drbd_send_protocol(struct drbd_connection *connection, enum drbd_packet cm
|
||||
p->conn_flags = cpu_to_be32(cf);
|
||||
|
||||
if (connection->agreed_pro_version >= 87)
|
||||
strcpy(p->integrity_alg, nc->integrity_alg);
|
||||
strscpy(p->integrity_alg, nc->integrity_alg, integrity_alg_len);
|
||||
rcu_read_unlock();
|
||||
|
||||
return __conn_send_command(connection, sock, cmd, size, NULL, 0);
|
||||
|
||||
Reference in New Issue
Block a user