Project

General

Profile

Bug #7398

Updated by Shivani Bhardwaj 23 days ago

scan-build-19 throws this warning: 
 <pre><code class="shell"> 

 datasets.c:187:12: warning: Call to blocking function 'fgets' inside of critical section [unix.BlockInCriticalSection] 
   187 |       while (fgets(line, (int)sizeof(line), fp) != NULL) { 
       |              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 datasets.c:292:12: warning: Call to blocking function 'fgets' inside of critical section [unix.BlockInCriticalSection] 
   292 |       while (fgets(line, (int)sizeof(line), fp) != NULL) { 
       |              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 datasets.c:368:12: warning: Call to blocking function 'fgets' inside of critical section [unix.BlockInCriticalSection] 
   368 |       while (fgets(line, (int)sizeof(line), fp) != NULL) { 
       |              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 datasets.c:442:12: warning: Call to blocking function 'fgets' inside of critical section [unix.BlockInCriticalSection] 
   442 |       while (fgets(line, (int)sizeof(line), fp) != NULL) { 
       |              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 datasets.c:512:12: warning: Call to blocking function 'fgets' inside of critical section [unix.BlockInCriticalSection] 
   512 |       while (fgets(line, (int)sizeof(line), fp) != NULL) { 
       |              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 5 warnings generated. 
 </code></pre> 

 @fgets@ also sees: 

 <pre><code class="shell"> 
 In file included from /usr/include/stdio.h:970, 
                  from suricata-common.h:64, 
                  from detect-engine-loader.c:24: 
 In function 'fgets', 
     inlined from 'DetectLoadSigFile' at detect-engine-loader.c:134:11: 
 /usr/include/x86_64-linux-gnu/bits/stdio2.h:313:12: warning: argument 2 value -1 is negative [-Wstringop-overflow=] 
   313 |       return __fgets_alias (__s, __n, __stream); 
       |              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 In file included from /usr/include/features.h:510, 
                  from /usr/include/dirent.h:25, 
                  from suricata-common.h:60: 
 /usr/include/x86_64-linux-gnu/bits/stdio2-decl.h: In function 'DetectLoadSigFile': 
 /usr/include/x86_64-linux-gnu/bits/stdio2-decl.h:96:14: note: in a call to function '__fgets_alias' declared with attribute 'access (write_only, 1, 2)' 
    96 | extern char *__REDIRECT (__fgets_alias, 
       |                ^~~~~~~~~~ 
 </code></pre> 

 Relevant doc: https://clang.llvm.org/docs/analyzer/checkers.html#unix-blockincriticalsection

Back