Skip to content

Commit 6555a2a

Browse files
hormskuba-moo
authored andcommitted
tipc: guard against string buffer overrun
Smatch reports that copying media_name and if_name to name_parts may overwrite the destination. .../bearer.c:166 bearer_name_validate() error: strcpy() 'media_name' too large for 'name_parts->media_name' (32 vs 16) .../bearer.c:167 bearer_name_validate() error: strcpy() 'if_name' too large for 'name_parts->if_name' (1010102 vs 16) This does seem to be the case so guard against this possibility by using strscpy() and failing if truncation occurs. Introduced by commit b97bf3f ("[TIPC] Initial merge") Compile tested only. Reviewed-by: Jakub Kicinski <[email protected]> Signed-off-by: Simon Horman <[email protected]> Link: https://patch.msgid.link/[email protected] Signed-off-by: Jakub Kicinski <[email protected]>
1 parent b71441b commit 6555a2a

File tree

1 file changed

+6
-2
lines changed

1 file changed

+6
-2
lines changed

net/tipc/bearer.c

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -163,8 +163,12 @@ static int bearer_name_validate(const char *name,
163163

164164
/* return bearer name components, if necessary */
165165
if (name_parts) {
166-
strcpy(name_parts->media_name, media_name);
167-
strcpy(name_parts->if_name, if_name);
166+
if (strscpy(name_parts->media_name, media_name,
167+
TIPC_MAX_MEDIA_NAME) < 0)
168+
return 0;
169+
if (strscpy(name_parts->if_name, if_name,
170+
TIPC_MAX_IF_NAME) < 0)
171+
return 0;
168172
}
169173
return 1;
170174
}

0 commit comments

Comments
 (0)