summaryrefslogtreecommitdiff
path: root/system/net-tools/fix-sscanf-format-specifier.patch
diff options
context:
space:
mode:
authorZach van Rijn <me@zv.io>2023-06-21 10:32:28 -0700
committerZach van Rijn <me@zv.io>2023-06-21 10:32:28 -0700
commitac09a25c3d03ff9b6932b556d1e11a2824059995 (patch)
tree57e55d3b8416d63f017b7e1b6bf154f5d09fde8f /system/net-tools/fix-sscanf-format-specifier.patch
parentcd08458e24d8e1c5989bfd463293c0cde602fbee (diff)
downloadpackages-ac09a25c3d03ff9b6932b556d1e11a2824059995.tar.gz
packages-ac09a25c3d03ff9b6932b556d1e11a2824059995.tar.bz2
packages-ac09a25c3d03ff9b6932b556d1e11a2824059995.tar.xz
packages-ac09a25c3d03ff9b6932b556d1e11a2824059995.zip
system/net-tools: add patch for sscanf format specifier. fixes #600.
Diffstat (limited to 'system/net-tools/fix-sscanf-format-specifier.patch')
-rw-r--r--system/net-tools/fix-sscanf-format-specifier.patch44
1 files changed, 44 insertions, 0 deletions
diff --git a/system/net-tools/fix-sscanf-format-specifier.patch b/system/net-tools/fix-sscanf-format-specifier.patch
new file mode 100644
index 000000000..e39e0434b
--- /dev/null
+++ b/system/net-tools/fix-sscanf-format-specifier.patch
@@ -0,0 +1,44 @@
+From d7d325d5fddb0be4601a910fe23066be6c8bd603 Mon Sep 17 00:00:00 2001
+From: Zach van Rijn <me@zv.io>
+Date: Wed, 21 Jun 2023 16:50:30 +0000
+Subject: [PATCH] Revert "sscanf pattern is %Lu not %llu for long long unsigned
+ byte counters."
+
+This reverts commit 811cf0aaf40a0e7f426f8ffaea7c3ca4b8bebdfc.
+
+See also: d828f5ce7cbd8d8c5cc4cf8f4a402f9647fa8548.
+
+diff --git a/lib/interface.c b/lib/interface.c
+index ef28dec..71d4163 100644
+--- a/lib/interface.c
++++ b/lib/interface.c
+@@ -254,7 +254,7 @@ static int get_dev_fields(const char *bp, struct interface *ife)
+ switch (procnetdev_vsn) {
+ case 3:
+ sscanf(bp,
+- "%Lu %Lu %lu %lu %lu %lu %lu %lu %Lu %Lu %lu %lu %lu %lu %lu %lu",
++ "%llu %llu %lu %lu %lu %lu %lu %lu %llu %llu %lu %lu %lu %lu %lu %lu",
+ &ife->stats.rx_bytes,
+ &ife->stats.rx_packets,
+ &ife->stats.rx_errors,
+@@ -274,7 +274,7 @@ static int get_dev_fields(const char *bp, struct interface *ife)
+ &ife->stats.tx_compressed);
+ break;
+ case 2:
+- sscanf(bp, "%Lu %Lu %lu %lu %lu %lu %Lu %Lu %lu %lu %lu %lu %lu",
++ sscanf(bp, "%llu %llu %lu %lu %lu %lu %llu %llu %lu %lu %lu %lu %lu",
+ &ife->stats.rx_bytes,
+ &ife->stats.rx_packets,
+ &ife->stats.rx_errors,
+@@ -292,7 +292,7 @@ static int get_dev_fields(const char *bp, struct interface *ife)
+ ife->stats.rx_multicast = 0;
+ break;
+ case 1:
+- sscanf(bp, "%Lu %lu %lu %lu %lu %Lu %lu %lu %lu %lu %lu",
++ sscanf(bp, "%llu %lu %lu %lu %lu %llu %lu %lu %lu %lu %lu",
+ &ife->stats.rx_packets,
+ &ife->stats.rx_errors,
+ &ife->stats.rx_dropped,
+--
+2.40.0
+