From: Masatake YAMATO Date: Sun, 5 Jan 2025 18:30:25 +0000 (+0900) Subject: lsfd: (bug fix) scan the protocol field of /proc/net/packet as a hex number X-Git-Tag: v2.41.1~60 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=798e4da071a96b14c7449bced9f16dc351dc5d84;p=thirdparty%2Futil-linux.git lsfd: (bug fix) scan the protocol field of /proc/net/packet as a hex number Signed-off-by: Masatake YAMATO (cherry picked from commit 0da7e8201aa7b9b2c5d0e901c0ccfd6f3bdc54d3) --- diff --git a/lsfd-cmd/sock-xinfo.c b/lsfd-cmd/sock-xinfo.c index f6811213a..42d8e0919 100644 --- a/lsfd-cmd/sock-xinfo.c +++ b/lsfd-cmd/sock-xinfo.c @@ -2373,7 +2373,7 @@ static void load_xinfo_from_proc_packet(ino_t netns_inode) unsigned long inode; struct packet_xinfo *pkt; - if (sscanf(line, "%*x %*d %" SCNu16 " %" SCNu16 " %u %*d %*d %*d %lu", + if (sscanf(line, "%*x %*d %" SCNu16 " %" SCNx16 " %u %*d %*d %*d %lu", &type, &protocol, &iface, &inode) < 4) continue; diff --git a/tests/expected/lsfd/mkfds-mapped-packet-socket b/tests/expected/lsfd/mkfds-mapped-packet-socket index ec8795b70..2e9db5eb5 100644 --- a/tests/expected/lsfd/mkfds-mapped-packet-socket +++ b/tests/expected/lsfd/mkfds-mapped-packet-socket @@ -1,8 +1,8 @@ PACKET SOCK.PROTONAME: 0 -type=raw protocol=all iface=lo raw PACKET lo all +type=raw protocol=ppptalk iface=lo raw PACKET lo ppptalk NAME,SOCK.TYPE,SOCK.PROTONAME,PACKET.IFACE,PACKET.PROTOCOL: 0 PACKET SOCK.PROTONAME: 0 -type=dgram protocol=all iface=lo dgram PACKET lo all +type=dgram protocol=ppptalk iface=lo dgram PACKET lo ppptalk NAME,SOCK.TYPE,SOCK.PROTONAME,PACKET.IFACE,PACKET.PROTOCOL: 0 diff --git a/tests/ts/lsfd/mkfds-mapped-packet-socket b/tests/ts/lsfd/mkfds-mapped-packet-socket index 12c5ef6bc..c3a73c54e 100755 --- a/tests/ts/lsfd/mkfds-mapped-packet-socket +++ b/tests/ts/lsfd/mkfds-mapped-packet-socket @@ -35,11 +35,12 @@ FD=3 EXPR= INTERFACE=lo SOCKTYPE= +PROTOCOL=$(printf "%d" 0x10) ERR= for SOCKTYPE in RAW DGRAM; do coproc MKFDS { "$TS_HELPER_MKFDS" mapped-packet-socket $FD \ - interface=${INTERFACE} socktype=${SOCKTYPE}; } + interface=${INTERFACE} socktype=${SOCKTYPE} protocol=${PROTOCOL}; } if read -u ${MKFDS[0]} PID; then EXPR='(ASSOC == "shm") and (STTYPE == "SOCK") and (MODE == "-w-")' ${TS_CMD_LSFD} -p "$PID" -n -o SOCK.PROTONAME -Q "${EXPR}"