Hi, the patch worked, any chance to apply it to the main distribution ?

regards.

On Sat, Feb 6, 2016 at 1:52 AM, Guillermo <gdiazhartu...@gmail.com> wrote:

> Hi,
>
> 2016-02-04 11:11 GMT-03:00 Nicolas de Bari Embriz Garcia Rojas:
> >
> >   4909 svlogd   CALL  sendto(0x7,0x609580,0x3c,0,0x609c3c,0x10)
> >   4909 svlogd   STRU  struct sockaddr { AF_UNSPEC, unknown address
> family }
> >   4909 svlogd   RET   sendto -1 errno 47 Address family not supported by
> protocol family
> > [...]
> > Any ideas ?
>
> Looking at svlogd.c, it seems the logdir_open() function, which among
> other things parses the 'config' file in the log directory, doesn't
> set the udpaddr.sin_family field in the struct logdir it is given. On
> my GNU/Linux system, strace shows sendto() is indeed given a struct
> sockaddr_in argument with an AF_UNSPEC address family, but the call
> succeeds regardless. My guess is that since it is passed an AF_INET
> socket, the implementation just assumes the struct sockaddr * argument
> points to a struct sockaddr_in, and doesn't check the sa_family field.
> Your system's implementation seems stricter, is that a BSD?
>
> Anyway, you may want to see if the attached patch makes your system
> happy. Linux strace says it should work...
> G.
>
> --- old/src/svlogd.c 2014-08-10 15:22:34.000000000 -0300
> +++ new/src/svlogd.c 2016-02-04 22:53:52.910965361 -0300
> @@ -430,6 +430,7 @@
>    ld->name =(char*)fn;
>    ld->ppid =0;
>    ld->match ='+';
> +  ld->udpaddr.sin_family =AF_INET;
>    ld->udpaddr.sin_port =0;
>    ld->udponly =0;
>    while (! stralloc_copys(&ld->prefix, "")) pause_nomem();
>

Reply via email to