ok mvs@

> On 11 Jan 2021, at 19:49, Alexander Bluhm <alexander.bl...@gmx.net> wrote:
> 
> Hi,
> 
> Sometimes an uid is logged in pflog(4) although the logopt of the
> rule does not specify it.  Check the option again for the log rule
> in case another rule has triggered a socket lookup.  Remove logopt
> group, it is not documented and cannot work as struct pfloghdr does
> not contain a gid.  Rename PF_LOG_SOCKET_LOOKUP to PF_LOG_USER to
> express what it does.  The lookup involved is only an implemntation
> detail.
> 
> ok?
> 
> bluhm
> 
> Index: sys/net/if_pflog.c
> ===================================================================
> RCS file: /data/mirror/openbsd/cvs/src/sys/net/if_pflog.c,v
> retrieving revision 1.91
> diff -u -p -r1.91 if_pflog.c
> --- sys/net/if_pflog.c        28 Aug 2020 12:01:48 -0000      1.91
> +++ sys/net/if_pflog.c        11 Jan 2021 14:44:55 -0000
> @@ -253,9 +253,9 @@ pflog_packet(struct pf_pdesc *pd, u_int8
>                       strlcpy(hdr.ruleset, ruleset->anchor->name,
>                           sizeof(hdr.ruleset));
>       }
> -     if (trigger->log & PF_LOG_SOCKET_LOOKUP && !pd->lookup.done)
> +     if (trigger->log & PF_LOG_USER && !pd->lookup.done)
>               pd->lookup.done = pf_socket_lookup(pd);
> -     if (pd->lookup.done > 0) {
> +     if (trigger->log & PF_LOG_USER && pd->lookup.done > 0) {
>               hdr.uid = pd->lookup.uid;
>               hdr.pid = pd->lookup.pid;
>       } else {
> Index: sys/net/pfvar.h
> ===================================================================
> RCS file: /data/mirror/openbsd/cvs/src/sys/net/pfvar.h,v
> retrieving revision 1.497
> diff -u -p -r1.497 pfvar.h
> --- sys/net/pfvar.h   14 Oct 2020 19:22:14 -0000      1.497
> +++ sys/net/pfvar.h   11 Jan 2021 14:46:54 -0000
> @@ -156,7 +156,7 @@ enum      { PF_ADDR_ADDRMASK, PF_ADDR_NOROUTE
> 
> #define       PF_LOG                  0x01
> #define       PF_LOG_ALL              0x02
> -#define      PF_LOG_SOCKET_LOOKUP    0x04
> +#define      PF_LOG_USER             0x04
> #define       PF_LOG_FORCE            0x08
> #define       PF_LOG_MATCHES          0x10
> 
> Index: sbin/pfctl/parse.y
> ===================================================================
> RCS file: /data/mirror/openbsd/cvs/src/sbin/pfctl/parse.y,v
> retrieving revision 1.707
> diff -u -p -r1.707 parse.y
> --- sbin/pfctl/parse.y        16 Dec 2020 18:01:16 -0000      1.707
> +++ sbin/pfctl/parse.y        11 Jan 2021 14:44:46 -0000
> @@ -2409,8 +2409,7 @@ logopts         : logopt                        { $$ = 
> $1; }
> 
> logopt                : ALL           { $$.log = PF_LOG_ALL; $$.logif = 0; }
>               | MATCHES       { $$.log = PF_LOG_MATCHES; $$.logif = 0; }
> -             | USER          { $$.log = PF_LOG_SOCKET_LOOKUP; $$.logif = 0; }
> -             | GROUP         { $$.log = PF_LOG_SOCKET_LOOKUP; $$.logif = 0; }
> +             | USER          { $$.log = PF_LOG_USER; $$.logif = 0; }
>               | TO string     {
>                       const char      *errstr;
>                       u_int            i;
> Index: sbin/pfctl/pfctl_parser.c
> ===================================================================
> RCS file: /data/mirror/openbsd/cvs/src/sbin/pfctl/pfctl_parser.c,v
> retrieving revision 1.344
> diff -u -p -r1.344 pfctl_parser.c
> --- sbin/pfctl/pfctl_parser.c 29 Dec 2020 19:50:28 -0000      1.344
> +++ sbin/pfctl/pfctl_parser.c 11 Jan 2021 14:44:26 -0000
> @@ -795,7 +795,7 @@ print_rule(struct pf_rule *r, const char
>                               printf("%sall", count++ ? ", " : "");
>                       if (r->log & PF_LOG_MATCHES)
>                               printf("%smatches", count++ ? ", " : "");
> -                     if (r->log & PF_LOG_SOCKET_LOOKUP)
> +                     if (r->log & PF_LOG_USER)
>                               printf("%suser", count++ ? ", " : "");
>                       if (r->logif)
>                               printf("%sto pflog%u", count++ ? ", " : "",
> 

Reply via email to