]> git.ipfire.org Git - thirdparty/util-linux.git/commitdiff
lsfd: (bug fix) scan the protocol field of /proc/net/packet as a hex number
authorMasatake YAMATO <yamato@redhat.com>
Sun, 5 Jan 2025 18:30:25 +0000 (03:30 +0900)
committerKarel Zak <kzak@redhat.com>
Wed, 2 Apr 2025 10:03:47 +0000 (12:03 +0200)
Signed-off-by: Masatake YAMATO <yamato@redhat.com>
(cherry picked from commit 0da7e8201aa7b9b2c5d0e901c0ccfd6f3bdc54d3)

lsfd-cmd/sock-xinfo.c
tests/expected/lsfd/mkfds-mapped-packet-socket
tests/ts/lsfd/mkfds-mapped-packet-socket

index f6811213aa40dbf0f9f3a762daf3249eca70e0af..42d8e0919201c28742f056a5ec8458a1bf5272b3 100644 (file)
@@ -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;
 
index ec8795b7009e04211de4b24850369e90bf254d12..2e9db5eb56a53b32518708e39d4d81b4507c647b 100644 (file)
@@ -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
index 12c5ef6bc91834675b267e46ab2514e105e854ab..c3a73c54e9fffc93e883c1350e8f1edbf6cca04e 100755 (executable)
@@ -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}"