detect: assist clang to suppress warning

CC       detect-engine-loader.o
In file included from /usr/include/stdio.h:970,
                 from suricata-common.h:77,
                 from detect-engine-loader.c:24:
In function 'fgets',
    inlined from 'DetectLoadSigFile' at detect-engine-loader.c:139: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:523,
                 from /usr/include/dirent.h:25,
                 from suricata-common.h:73:
/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,
      |              ^~~~~~~~~~
pull/13201/head
Victor Julien 3 months ago committed by Victor Julien
parent 1e68213098
commit c85d301712

@ -136,7 +136,14 @@ static int DetectLoadSigFile(DetectEngineCtx *de_ctx, const char *sig_file, int
return -1;
}
while (fgets(line + offset, (int)(sizeof(line) - offset), fp) != NULL) {
while (1) {
/* help clang to understand offset can't get > sizeof(line), so the argument to
* fgets can't get negative. */
BUG_ON(offset >= sizeof(line));
char *res = fgets(line + offset, (int)(sizeof(line) - offset), fp);
if (res == NULL)
break;
lineno++;
size_t len = strlen(line);

Loading…
Cancel
Save