lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <1518719493-29333-1-git-send-email-serhe.popovych@gmail.com>
Date:   Thu, 15 Feb 2018 20:31:33 +0200
From:   Serhey Popovych <serhe.popovych@...il.com>
To:     netdev@...r.kernel.org
Subject: [PATCH iproute2-next] ip: Use single variable to represent -pretty

After commit a233caa0aaee ("json: make pretty printing optional") I get
following build failure:

    LINK     rtmon
    ../lib/libutil.a(json_print.o): In function `new_json_obj':
    json_print.c:(.text+0x35): undefined reference to `show_pretty'
    collect2: error: ld returned 1 exit status
    make[1]: *** [rtmon] Error 1
    make: *** [all] Error 2

It is caused by missing show_pretty variable in rtmon.

On the other hand tc/tc.c there are two distinct variables and single
matches() call that handles -pretty option thus setting show_pretty
will never happen. Note that since commit 44dcfe820185 ("Change
formatting of u32 back to default") show_pretty is used in tc/f_u32.c
so this is first place where -pretty introduced.

Furthermore other utilities like misc/ifstat.c and misc/nstat.c define
pretty variable, however only for their own purposes. They both support
JSON output and thus depend show_pretty in new_json_obj().

Assuming above use common variable to represent -pretty option, define
it in utils.c and declare in utils.h that is commonly used. Replace
show_pretty with pretty.

Fixes: a233caa0aaee ("json: make pretty printing optional")
Signed-off-by: Serhey Popovych <serhe.popovych@...il.com>
---
 include/json_print.h |    2 --
 ip/ip.c              |    3 +--
 lib/json_print.c     |    2 +-
 lib/utils.c          |    1 +
 misc/ifstat.c        |    1 -
 misc/nstat.c         |    1 -
 tc/f_u32.c           |    4 +---
 tc/tc.c              |    6 +-----
 8 files changed, 5 insertions(+), 15 deletions(-)

diff --git a/include/json_print.h b/include/json_print.h
index 45a817c..2ca7830 100644
--- a/include/json_print.h
+++ b/include/json_print.h
@@ -15,8 +15,6 @@
 #include "json_writer.h"
 #include "color.h"
 
-extern int show_pretty;
-
 json_writer_t *get_json_writer(void);
 
 /*
diff --git a/ip/ip.c b/ip/ip.c
index 233a9d7..f624884 100644
--- a/ip/ip.c
+++ b/ip/ip.c
@@ -31,7 +31,6 @@ int show_stats;
 int show_details;
 int oneline;
 int brief;
-int show_pretty;
 int json;
 int timestamp;
 const char *_SL_;
@@ -261,7 +260,7 @@ int main(int argc, char **argv)
 		} else if (matches(opt, "-json") == 0) {
 			++json;
 		} else if (matches(opt, "-pretty") == 0) {
-			++show_pretty;
+			++pretty;
 		} else if (matches(opt, "-rcvbuf") == 0) {
 			unsigned int size;
 
diff --git a/lib/json_print.c b/lib/json_print.c
index b507b14..bda7293 100644
--- a/lib/json_print.c
+++ b/lib/json_print.c
@@ -28,7 +28,7 @@ void new_json_obj(int json)
 			perror("json object");
 			exit(1);
 		}
-		if (show_pretty)
+		if (pretty)
 			jsonw_pretty(_jw, true);
 		jsonw_start_array(_jw);
 	}
diff --git a/lib/utils.c b/lib/utils.c
index d86c2ee..cbe5d8d 100644
--- a/lib/utils.c
+++ b/lib/utils.c
@@ -37,6 +37,7 @@
 
 int resolve_hosts;
 int timestamp_short;
+int pretty;
 
 int read_prop(const char *dev, char *prop, long *value)
 {
diff --git a/misc/ifstat.c b/misc/ifstat.c
index ac3eff6..50b906e 100644
--- a/misc/ifstat.c
+++ b/misc/ifstat.c
@@ -45,7 +45,6 @@ int no_update;
 int scan_interval;
 int time_constant;
 int show_errors;
-int pretty;
 double W;
 char **patterns;
 int npatterns;
diff --git a/misc/nstat.c b/misc/nstat.c
index a4dd405..ffa14b1 100644
--- a/misc/nstat.c
+++ b/misc/nstat.c
@@ -37,7 +37,6 @@ int reset_history;
 int ignore_history;
 int no_output;
 int json_output;
-int pretty;
 int no_update;
 int scan_interval;
 int time_constant;
diff --git a/tc/f_u32.c b/tc/f_u32.c
index 019d56c..b6064cd 100644
--- a/tc/f_u32.c
+++ b/tc/f_u32.c
@@ -25,8 +25,6 @@
 #include "utils.h"
 #include "tc_util.h"
 
-extern int show_pretty;
-
 static void explain(void)
 {
 	fprintf(stderr,
@@ -965,7 +963,7 @@ static void show_keys(FILE *f, const struct tc_u32_key *key)
 {
 	int i = 0;
 
-	if (!show_pretty)
+	if (!pretty)
 		goto show_k;
 
 	for (i = 0; i < ARRAY_SIZE(u32_pprinters); i++) {
diff --git a/tc/tc.c b/tc/tc.c
index aba5c10..cfccf87 100644
--- a/tc/tc.c
+++ b/tc/tc.c
@@ -33,7 +33,6 @@
 int show_stats;
 int show_details;
 int show_raw;
-int show_pretty;
 int show_graph;
 int timestamp;
 
@@ -42,7 +41,6 @@ int use_iec;
 int force;
 bool use_names;
 int json;
-int pretty;
 
 static char *conf_file;
 
@@ -449,7 +447,7 @@ int main(int argc, char **argv)
 		} else if (matches(argv[1], "-raw") == 0) {
 			++show_raw;
 		} else if (matches(argv[1], "-pretty") == 0) {
-			++show_pretty;
+			++pretty;
 		} else if (matches(argv[1], "-graph") == 0) {
 			show_graph = 1;
 		} else if (matches(argv[1], "-Version") == 0) {
@@ -485,8 +483,6 @@ int main(int argc, char **argv)
 			++timestamp_short;
 		} else if (matches(argv[1], "-json") == 0) {
 			++json;
-		} else if (matches(argv[1], "-pretty") == 0) {
-			++pretty;
 		} else {
 			fprintf(stderr, "Option \"%s\" is unknown, try \"tc -help\".\n", argv[1]);
 			return -1;
-- 
1.7.10.4

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ