sendto() giving EPERM outside a jail
Julian Elischer
julian at elischer.org
Thu Mar 22 01:55:19 UTC 2007
Daniel O'Connor wrote:
> Hi,
> I am trying to port miniupnpd (http://miniupnp.tuxfamily.org/) and by in large
> it seems to work fine (evil idea as it is :) However it spews out a lot of..
> miniupnpd[13010]: sendto(udp_notify): Operation not permitted
>
> According to my reading of the man page it is not possible to get this error
> unless I'm using jails (which I'm not). The code in question does..
you can get it from the firewall too..
>
> memset(&sockname, 0, sizeof(struct sockaddr_in));
> sockname.sin_family = AF_INET;
> sockname.sin_port = htons(PORT);
> sockname.sin_addr.s_addr = inet_addr(UPNP_MCAST_ADDR);
> while(known_service_types[i])
> {
> snprintf(bufr, sizeof(bufr),
> "NOTIFY * HTTP/1.1\r\n"
> "HOST:%s:%d\r\n"
> ...
> n = sendto(s, bufr, strlen(bufr), 0,
> (struct sockaddr *)&sockname, sizeof(struct sockaddr_in) );
>
> (line 278 of miniupnpd.c).
>
> Can someone shed light on what the problem is? The application appears to work
> fine even with this error though.
>
> I am running it on a FreeBSD 6.2 system.
>
> Thanks.
>
> PS please CC me as I am not subscribed.
>
More information about the freebsd-hackers
mailing list