Lucid/Maverick/Oneiric SRU, relax AF_INET check in bind()

Herton R. Krzesinski herton.krzesinski at canonical.com
Mon Dec 5 18:46:31 UTC 2011


SRU Justification

Impact
bind(AF_UNSPEC) to INADDR_ANY doesn't work anymore, breaking some legacy
applications, since commit d0733d2e29b65 (Check for mistakenly passed in
non-IPv4 address)

Fix
upstream commit 29c486df6a208432b370bd4be99ae1369ede28d8

Testcase
#include <stdio.h>
#include <sys/socket.h>
#include <string.h>
#include <linux/in.h>

int main(int argc, char **argv)
{
 struct sockaddr_in addr;
 int fd, r;

 fd = socket(PF_INET, SOCK_STREAM, 0);
 memset(&addr, 0, sizeof(struct sockaddr_in));
 r = bind(fd, (struct sockaddr *)&addr, sizeof(addr));
 if (!r)
  printf("Everything looks good\n");
 else
  printf("ERROR: too strict AF_INET check\n");
 close(fd);
}

-- 
[]'s
Herton




More information about the kernel-team mailing list