On 2020/07/01 01:57, marfabastewart wrote:
> > Thanks, I've just fixed /etc/flow-tools/flow-tools and
> > /usr/usr/local/bin/python2.7 in -current.
>
> Thank you very much for your quick assistance!
>
> I did find a few new problems:
>
> Category: net/flow-tools
> Environment:
> Details : OpenBSD 6.7-current (GENERIC.MP) #306: Fri Jun 26 22:13:55 MDT 2020
> deraadt@amd64.openbsd.org:/usr/src/sys/arch/amd64/compile/GENERIC.MP
> Architecture: OpenBSD.amd64
> Description:
>
> 1. These man pages show formatting codes instead of man pages andrunning make shows errors with docbook-to-man:
> flow-capture
> flow-export
> flow-header
> flow-import
> flow-nfilter
> flow-report
> flow-stat
> flow-tools-examples
> flow-xlate
It looks like the actual problem is in docbook-to-man but I don't have
time to investigate that so I'm going to move back to the googlecode
version which avoids this.
> 2. flow-cat ft-v05.xxx | flow-print -f -6
> generates segmentation fault. The above extra hyphen for the 6 is a deliberate error.
> flow-print -f 6 gives IP Accounting format.
not the biggest surprise, it's quite old and mostly abandoned software
(though there aren't really a lot of alternatives so I think it's useful
to have even if imperfect).
I guess this will exist in the old version too (I don't have netflow
setup to get an export from to test at the moment)
> 2. Instead of using atoi, perhaps use strtonum and errx in the getopt cases. There are
> many calls to atoi, but I just tried to fix one in flow-print. I was unable to test
> it though. I tried just removing doc from the Makefile MAKE_FLAGS SUBDIRS and apply
> the patch below, but when I ran make install, it always seemed to install the code
> without my patch. I'm sure that part is my fault, I just don't know how to correct it.
> I tried:
> cd /usr/ports/net/flow-tools
> make patch
> cd /usr/ports/pobj/flow-tools-0.68.6/flow-tools-0.68.6/src/flow-print.c
> cp flow-print.c flow-print.c.orig
> # edit file, then
> cd /usr/ports/net/flow-tools
> make update-patches
> cd patches
> cvs add patch-src-_flow-print_c
> cd /usr/ports/net/flow-tools
> cvs diff -uNp
> make
> make install
If you previously built a package, the above commands won't recreate it.
Try "make repackage" then "make install".
>
> There may be other examples of input that would generate a segmentation fault.
>
> My patch for what it's worth:
>
> $OpenBSD$
>
> Index: src/flow-print.c
> --- src/flow-print.c.orig
> +++ src/flow-print.c
> @@ -28,6 +28,7 @@
>
> #include "ftconfig.h"
> #include <ftlib.h>
> +#include <err.h>
>
> #include <sys/time.h>
> #include <sys/types.h>
> @@ -98,6 +99,7 @@ char **argv;
> int i, format_index, set_format, ret;
> int print_header, options, debug;
> char cc; /* comment character */
> + const char *errstr;
>
> /* init fterr */
> fterr_setid(argv[0]);
> @@ -124,7 +126,9 @@ char **argv;
> break;
>
> case 'f': /* format */
> - format_index = atoi(optarg);
> + format_index = strtonum(optarg, 0, NFORMATS, &errstr);
> + if (errstr != NULL)
> + errx(1,"invalid report format number. %s : %s", errstr, optarg);
> set_format = 1;
> break;
>
>
No comments:
Post a Comment