Skip to content

Commit dcdba59

Browse files
tobluxandreas-gaisler
authored andcommitted
sparc: Replace deprecated strcpy() with strscpy() in domain services driver
strcpy() is deprecated; use strscpy() instead. In ldom_set_var(), use pr_err() instead of printk(KERN_ERR) to silence a checkpatch warning. No functional changes intended. Link: KSPP#88 Signed-off-by: Thorsten Blum <thorsten.blum@linux.dev> Reviewed-by: Andreas Larsson <andreas@gaisler.com> Signed-off-by: Andreas Larsson <andreas@gaisler.com>
1 parent 9040d7c commit dcdba59

1 file changed

Lines changed: 15 additions & 12 deletions

File tree

  • arch/sparc/kernel

arch/sparc/kernel/ds.c

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -781,14 +781,17 @@ void ldom_set_var(const char *var, const char *value)
781781
} pkt;
782782
char *base, *p;
783783
int msg_len, loops;
784+
size_t var_len, value_len;
784785

785-
if (strlen(var) + strlen(value) + 2 >
786-
sizeof(pkt) - sizeof(pkt.header)) {
787-
printk(KERN_ERR PFX
788-
"contents length: %zu, which more than max: %lu,"
789-
"so could not set (%s) variable to (%s).\n",
790-
strlen(var) + strlen(value) + 2,
791-
sizeof(pkt) - sizeof(pkt.header), var, value);
786+
var_len = strlen(var) + 1;
787+
value_len = strlen(value) + 1;
788+
789+
if (var_len + value_len > sizeof(pkt) - sizeof(pkt.header)) {
790+
pr_err(PFX
791+
"contents length: %zu, which more than max: %lu,"
792+
"so could not set (%s) variable to (%s).\n",
793+
var_len + value_len,
794+
sizeof(pkt) - sizeof(pkt.header), var, value);
792795
return;
793796
}
794797

@@ -797,10 +800,10 @@ void ldom_set_var(const char *var, const char *value)
797800
pkt.header.data.handle = cp->handle;
798801
pkt.header.msg.hdr.type = DS_VAR_SET_REQ;
799802
base = p = &pkt.header.msg.name_and_value[0];
800-
strcpy(p, var);
801-
p += strlen(var) + 1;
802-
strcpy(p, value);
803-
p += strlen(value) + 1;
803+
strscpy(p, var, var_len);
804+
p += var_len;
805+
strscpy(p, value, value_len);
806+
p += value_len;
804807

805808
msg_len = (sizeof(struct ds_data) +
806809
sizeof(struct ds_var_set_msg) +
@@ -910,7 +913,7 @@ static int register_services(struct ds_info *dp)
910913
pbuf.req.handle = cp->handle;
911914
pbuf.req.major = 1;
912915
pbuf.req.minor = 0;
913-
strcpy(pbuf.id_buf, cp->service_id);
916+
strscpy(pbuf.id_buf, cp->service_id);
914917

915918
err = __ds_send(lp, &pbuf, msg_len);
916919
if (err > 0)

0 commit comments

Comments
 (0)