gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[gnurl] 64/151: checksrc: fix regexp for ASSIGNWITHINCONDITION


From: gnunet
Subject: [gnurl] 64/151: checksrc: fix regexp for ASSIGNWITHINCONDITION
Date: Fri, 20 Dec 2019 14:26:13 +0100

This is an automated email from the git hooks/post-receive script.

ng0 pushed a commit to branch master
in repository gnurl.

commit ba82673dac3e8d00a76aa5e3779a0cb80e7442af
Author: Daniel Gustafsson <address@hidden>
AuthorDate: Thu Nov 28 14:16:02 2019 +0100

    checksrc: fix regexp for ASSIGNWITHINCONDITION
    
    The regexp looking for assignments within conditions was too greedy
    and matched a too long string in the case of multiple conditionals
    on the same line. This is basically only a problem in single line
    macros, and the code which exemplified this was essentially:
    
      do { if((x) != NULL) { x = NULL; } } while(0)
    
    ..where the final parenthesis of while(0) matched the regexp, and
    the legal assignment in the block triggered the warning. Fix by
    making the regexp less greedy by matching for the tell-tale signs
    of the if statement ending.
    
    Also remove the one occurrence where the warning was disabled due
    to a construction like the above, where the warning didn't apply
    when fixed.
    
    Closes #4647
    Reviewed-by: Daniel Stenberg <address@hidden>
---
 lib/checksrc.pl   | 2 +-
 lib/vssh/libssh.c | 1 -
 2 files changed, 1 insertion(+), 2 deletions(-)

diff --git a/lib/checksrc.pl b/lib/checksrc.pl
index 834364561..db9a45dff 100755
--- a/lib/checksrc.pl
+++ b/lib/checksrc.pl
@@ -457,7 +457,7 @@ sub scanfile {
             }
         }
 
-        if($nostr =~ /^((.*)(if) *\()(.*)\)/) {
+        if($nostr =~ /^((.*)(if) *\()(.*)\) [{\n]/) {
             my $pos = length($1);
             if($4 =~ / = /) {
                 checkwarn("ASSIGNWITHINCONDITION",
diff --git a/lib/vssh/libssh.c b/lib/vssh/libssh.c
index cad8b3786..070879d94 100644
--- a/lib/vssh/libssh.c
+++ b/lib/vssh/libssh.c
@@ -97,7 +97,6 @@
 
 /* A recent macro provided by libssh. Or make our own. */
 #ifndef SSH_STRING_FREE_CHAR
-/* !checksrc! disable ASSIGNWITHINCONDITION 1 */
 #define SSH_STRING_FREE_CHAR(x) \
     do { if((x) != NULL) { ssh_string_free_char(x); x = NULL; } } while(0)
 #endif

-- 
To stop receiving notification emails like this one, please contact
address@hidden.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]