mirror of
https://github.com/opnsense/src.git
synced 2026-05-04 17:05:14 -04:00
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
This commit is contained in:
parent
fdac1e8bdc
commit
50da3e886d
4 changed files with 10 additions and 16 deletions
|
|
@ -403,7 +403,7 @@ fwe_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data)
|
|||
{
|
||||
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, caddr_t data)
|
|||
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:
|
||||
|
|
|
|||
|
|
@ -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, caddr_t data, struct thread *td)
|
|||
break;
|
||||
|
||||
case SIOCGIFSTATUS:
|
||||
ifs = (struct ifstat *)data;
|
||||
ifs->ascii[0] = '\0';
|
||||
|
||||
case SIOCGIFPSRCADDR:
|
||||
case SIOCGIFPDSTADDR:
|
||||
case SIOCGIFMEDIA:
|
||||
|
|
|
|||
|
|
@ -636,12 +636,12 @@ tapifioctl(struct ifnet *ifp, u_long cmd, caddr_t data)
|
|||
|
||||
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;
|
||||
|
||||
|
|
|
|||
|
|
@ -546,8 +546,10 @@ tunifioctl(struct ifnet *ifp, u_long cmd, caddr_t data)
|
|||
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:
|
||||
|
|
|
|||
Loading…
Reference in a new issue