From cf032648ebdf301b5c365e0852abf29c654b72da Mon Sep 17 00:00:00 2001 From: Gregory Bean Date: Tue, 10 May 2011 12:34:09 -0700 Subject: checkpatch: deprecate unbounded string functions. Unbounded string functions are overflow risks. The 'n' versions of those functions should be used instead. Change-Id: Ice0fb3ebdae9aa88cc7e764ffdf68cbed857febf Signed-off-by: Gregory Bean (cherry picked from commit 15e1e97d66dd6a6039c1ec2bd549a632fe361128) Signed-off-by: Stepan Moskovchenko --- scripts/checkpatch.pl | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'scripts/checkpatch.pl') diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl index f59113732720..b1a2511de9b8 100755 --- a/scripts/checkpatch.pl +++ b/scripts/checkpatch.pl @@ -4950,6 +4950,26 @@ sub process { $herecurr); } +# unbounded string functions are overflow risks + my %str_fns = ( + "sprintf" => "snprintf", + "strcpy" => "strlcpy", + "strncpy" => "strlcpy", + "strcat" => "strlcat", + "strncat" => "strlcat", + "vsprintf" => "vsnprintf", + "strchr" => "strnchr", + "strstr" => "strnstr", + ); + foreach my $k (keys %str_fns) { + if ($line =~ /\b$k\b/) { + ERROR("UNBOUNDED_STRING_FNS", + "Use of $k is deprecated: " . + "use $str_fns{$k} instead.\n" . + $herecurr); + } + } + # warn about #if 0 if ($line =~ /^.\s*\#\s*if\s+0\b/) { WARN("IF_0", -- cgit v1.2.3