[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH 3/4] tools/xenstored: Avoid buffer overflows while setting up sockets
Andrew Cooper writes ("[PATCH 3/4] tools/xenstored: Avoid buffer overflows while setting up sockets"): > Coverity ID: 1055996 1056002 > > Use strncpy in preference to strcpy, and use the correct failing path for > error messages. ... > addr.sun_family = AF_UNIX; > - strcpy(addr.sun_path, xs_daemon_socket()); > + strncpy(addr.sun_path, xs_daemon_socket(), sizeof(addr.sun_path)); > if (bind(*sock, (struct sockaddr *)&addr, sizeof(addr)) != 0) > - barf_perror("Could not bind socket to %s", xs_daemon_socket()); > + barf_perror("Could not bind socket to %s", addr.sun_path); This latter hunk is not correct. addr.sun_path might not be nul-terminated. xs_daemon_socket() is, but isn't the path actually attempted. Also, while this new code avoids UB, it still has the bug that if the configured socket pathname is too long, xenstored will create a version with a truncated path. Perhaps a better approach would be an explicit overlength check. Ian. _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |