Date: Tue, 7 Jan 2014 15:59:33 +0000 (UTC) From: "Alexander V. Chernikov" <melifaro@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r260394 - in head/sys: dev/firewire net Message-ID: <201401071559.s07FxX16075251@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: melifaro Date: Tue Jan 7 15:59:33 2014 New Revision: 260394 URL: http://svnweb.freebsd.org/changeset/base/260394 Log: Teach every SIOCGIFSTATUS provider to fill in ifs->ascii anyway. Remove old bits of data concat for 'ascii' field. Remove special SIOCGIFSTATUS handling from if.c (which Coverity yells at). Reported by: Coverity Coverity CID: 1147174 MFC after: 2 weeks Modified: head/sys/dev/firewire/if_fwe.c head/sys/net/if.c head/sys/net/if_tap.c head/sys/net/if_tun.c Modified: head/sys/dev/firewire/if_fwe.c ============================================================================== --- head/sys/dev/firewire/if_fwe.c Tue Jan 7 14:03:42 2014 (r260393) +++ head/sys/dev/firewire/if_fwe.c Tue Jan 7 15:59:33 2014 (r260394) @@ -403,7 +403,7 @@ fwe_ioctl(struct ifnet *ifp, u_long cmd, { struct fwe_softc *fwe = ((struct fwe_eth_softc *)ifp->if_softc)->fwe; struct ifstat *ifs = NULL; - int s, error, len; + int s, error; switch (cmd) { case SIOCSIFFLAGS: @@ -434,12 +434,8 @@ fwe_ioctl(struct ifnet *ifp, u_long cmd, case SIOCGIFSTATUS: s = splimp(); ifs = (struct ifstat *)data; - len = strlen(ifs->ascii); - if (len < sizeof(ifs->ascii)) - snprintf(ifs->ascii + len, - sizeof(ifs->ascii) - len, - "\tch %d dma %d\n", - fwe->stream_ch, fwe->dma_ch); + snprintf(ifs->ascii, sizeof(ifs->ascii), + "\tch %d dma %d\n", fwe->stream_ch, fwe->dma_ch); splx(s); break; case SIOCSIFCAP: Modified: head/sys/net/if.c ============================================================================== --- head/sys/net/if.c Tue Jan 7 14:03:42 2014 (r260393) +++ head/sys/net/if.c Tue Jan 7 15:59:33 2014 (r260394) @@ -2088,7 +2088,6 @@ static int ifhwioctl(u_long cmd, struct ifnet *ifp, caddr_t data, struct thread *td) { struct ifreq *ifr; - struct ifstat *ifs; int error = 0; int new_flags, temp_flags; size_t namelen, onamelen; @@ -2425,9 +2424,6 @@ ifhwioctl(u_long cmd, struct ifnet *ifp, break; case SIOCGIFSTATUS: - ifs = (struct ifstat *)data; - ifs->ascii[0] = '\0'; - case SIOCGIFPSRCADDR: case SIOCGIFPDSTADDR: case SIOCGIFMEDIA: Modified: head/sys/net/if_tap.c ============================================================================== --- head/sys/net/if_tap.c Tue Jan 7 14:03:42 2014 (r260393) +++ head/sys/net/if_tap.c Tue Jan 7 15:59:33 2014 (r260394) @@ -636,12 +636,12 @@ tapifioctl(struct ifnet *ifp, u_long cmd case SIOCGIFSTATUS: ifs = (struct ifstat *)data; - dummy = strlen(ifs->ascii); mtx_lock(&tp->tap_mtx); - if (tp->tap_pid != 0 && dummy < sizeof(ifs->ascii)) - snprintf(ifs->ascii + dummy, - sizeof(ifs->ascii) - dummy, + if (tp->tap_pid != 0) + snprintf(ifs->ascii, sizeof(ifs->ascii), "\tOpened by PID %d\n", tp->tap_pid); + else + ifs->ascii[0] = '\0'; mtx_unlock(&tp->tap_mtx); break; Modified: head/sys/net/if_tun.c ============================================================================== --- head/sys/net/if_tun.c Tue Jan 7 14:03:42 2014 (r260393) +++ head/sys/net/if_tun.c Tue Jan 7 15:59:33 2014 (r260394) @@ -546,8 +546,10 @@ tunifioctl(struct ifnet *ifp, u_long cmd ifs = (struct ifstat *)data; mtx_lock(&tp->tun_mtx); if (tp->tun_pid) - sprintf(ifs->ascii + strlen(ifs->ascii), + snprintf(ifs->ascii, sizeof(ifs->ascii), "\tOpened by PID %d\n", tp->tun_pid); + else + ifs->ascii[0] = '\0'; mtx_unlock(&tp->tun_mtx); break; case SIOCSIFADDR:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201401071559.s07FxX16075251>