On 2/10/2019 9:59 pm, Kyle Evans wrote:
Sorry for the crap formatting, mobile.

We can perhaps also fix this class with a proper modelling file. koobs was
going to send out an email about it, but I haven't seen anything.

Thanks for the public reminder Kyle :]

I'll flick it out soon

On Wed, Oct 2, 2019, 02:03 Conrad Meyer <c...@freebsd.org> wrote:

Hi Alexander,

Coverity has millions of spurious warnings of this class and they're
basically all false positives.  I think we should instead try to
figure out how to disable this class of warning on our codebase, since
it is largely incorrect.

I would encourage reverting this change, because it uglies up the code
for no functional benefit.  The code was correct before the change;
only Coverity was wrong.

Best,
Conrad

On Tue, Oct 1, 2019 at 11:15 PM Alexander Kabaev <k...@freebsd.org> wrote:

Author: kan
Date: Wed Oct  2 06:15:30 2019
New Revision: 352953
URL: https://svnweb.freebsd.org/changeset/base/352953

Log:
   Convert pnmatch to single element array in regexec calls

   The regexec function is declared as taking an array of regmatch_t
   elements, and passing in the pointer to singleton element, while
   correct, triggers a Coverity warning. Convert the singleton into
   an array of one to silence the warning.

   Reported by:  Coverity
   Coverity CID: 1009732, 1009733
   MFC after:    2 weeks

Modified:
   head/usr.bin/killall/killall.c
   head/usr.bin/split/split.c

Modified: head/usr.bin/killall/killall.c

==============================================================================
--- head/usr.bin/killall/killall.c      Wed Oct  2 02:37:34 2019
(r352952)
+++ head/usr.bin/killall/killall.c      Wed Oct  2 06:15:30 2019
(r352953)
@@ -98,7 +98,7 @@ main(int ac, char **av)
         struct stat     sb;
         struct passwd   *pw;
         regex_t         rgx;
-       regmatch_t      pmatch;
+       regmatch_t      pmatch[1];
         int             i, j, ch;
         char            buf[256];
         char            first;
@@ -361,9 +361,9 @@ main(int ac, char **av)
                                 }
                         }
                         if (mflag) {
-                               pmatch.rm_so = 0;
-                               pmatch.rm_eo = strlen(thiscmd);
-                               if (regexec(&rgx, thiscmd, 0, &pmatch,
+                               pmatch[0].rm_so = 0;
+                               pmatch[0].rm_eo = strlen(thiscmd);
+                               if (regexec(&rgx, thiscmd, 0, pmatch,
                                     REG_STARTEND) != 0)
                                         matched = 0;
                                 regfree(&rgx);
@@ -387,9 +387,9 @@ main(int ac, char **av)
                                 }
                         }
                         if (mflag) {
-                               pmatch.rm_so = 0;
-                               pmatch.rm_eo = strlen(thiscmd);
-                               if (regexec(&rgx, thiscmd, 0, &pmatch,
+                               pmatch[0].rm_so = 0;
+                               pmatch[0].rm_eo = strlen(thiscmd);
+                               if (regexec(&rgx, thiscmd, 0, pmatch,
                                     REG_STARTEND) == 0)
                                         matched = 1;
                                 regfree(&rgx);

Modified: head/usr.bin/split/split.c

==============================================================================
--- head/usr.bin/split/split.c  Wed Oct  2 02:37:34 2019        (r352952)
+++ head/usr.bin/split/split.c  Wed Oct  2 06:15:30 2019        (r352953)
@@ -281,11 +281,11 @@ split2(void)

                 /* Check if we need to start a new file */
                 if (pflag) {
-                       regmatch_t pmatch;
+                       regmatch_t pmatch[1];

-                       pmatch.rm_so = 0;
-                       pmatch.rm_eo = len - 1;
-                       if (regexec(&rgx, bfr, 0, &pmatch, REG_STARTEND)
== 0)
+                       pmatch[0].rm_so = 0;
+                       pmatch[0].rm_eo = len - 1;
+                       if (regexec(&rgx, bfr, 0, pmatch, REG_STARTEND)
== 0)
                                 newfile();
                 } else if (lcnt++ == numlines) {
                         newfile();



_______________________________________________
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to