master hovercats/oakiss / pkg / strace / patch / 0004-Don-t-omit-second-operand-to-operator.patch
  1From 2a87525db61778ad915273dea37a17ae88e7a1f1 Mon Sep 17 00:00:00 2001
  2From: Michael Forney <mforney@mforney.org>
  3Date: Sun, 7 Jul 2019 21:53:16 -0700
  4Subject: [PATCH] Don't omit second operand to '?' operator
  5
  6---
  7 src/defs.h    |  2 +-
  8 src/open.c    |  5 +++--
  9 src/prctl.c   |  8 ++++----
 10 src/strace.c  | 10 +++++-----
 11 src/strauss.c |  4 +++-
 12 src/util.c    |  4 ++--
 13 6 files changed, 18 insertions(+), 15 deletions(-)
 14
 15diff --git a/src/defs.h b/src/defs.h
 16index 47e1c71f6..cd63f9d35 100644
 17--- a/src/defs.h
 18+++ b/src/defs.h
 19@@ -404,7 +404,7 @@ struct tcb {
 20 # define has_seccomp_filter(tcp)	((tcp)->flags & TCB_SECCOMP_FILTER)
 21 
 22 extern const struct_sysent stub_sysent;
 23-# define tcp_sysent(tcp) (tcp->s_ent ?: &stub_sysent)
 24+# define tcp_sysent(tcp) (tcp->s_ent ? tcp->s_ent : &stub_sysent)
 25 # define n_args(tcp) MIN(tcp_sysent(tcp)->nargs, MAX_ARGS)
 26 
 27 # include "xlat.h"
 28diff --git a/src/open.c b/src/open.c
 29index 00bb697d0..77e6b2d9a 100644
 30--- a/src/open.c
 31+++ b/src/open.c
 32@@ -88,8 +88,9 @@ sprint_open_modes64(uint64_t flags)
 33 	}
 34 	*p = '\0';
 35 
 36-	return sprintflags_ex(outstr, open_mode_flags, flags, sep,
 37-			      XLAT_STYLE_ABBREV) ?: outstr;
 38+	str = sprintflags_ex(outstr, open_mode_flags, flags, sep,
 39+			     XLAT_STYLE_ABBREV);
 40+	return str ? str : outstr;
 41 }
 42 
 43 const char *
 44diff --git a/src/prctl.c b/src/prctl.c
 45index e4d6de888..89101e5cd 100644
 46--- a/src/prctl.c
 47+++ b/src/prctl.c
 48@@ -99,10 +99,10 @@ sprint_sve_val(kernel_ulong_t arg, bool aux)
 49 	if (!aux && flags && xlat_verbose(xlat_verbosity) == XLAT_STYLE_VERBOSE)
 50 	{
 51 		xsprintf(out, "%#" PRI_klx " /* %s%s%#" PRI_klx " */",
 52-			 arg, flags_str ?: "", flags_str ? "|" : "", vl);
 53+			 arg, flags_str ? flags_str : "", flags_str ? "|" : "", vl);
 54 	} else {
 55 		xsprintf(out, "%s%s%#" PRI_klx,
 56-			 flags_str ?: "", flags_str ? "|" : "", vl);
 57+			 flags_str ? flags_str : "", flags_str ? "|" : "", vl);
 58 	}
 59 
 60 	return out;
 61@@ -135,10 +135,10 @@ sprint_sme_val(kernel_ulong_t arg, bool aux)
 62 	if (!aux && flags && xlat_verbose(xlat_verbosity) == XLAT_STYLE_VERBOSE)
 63 	{
 64 		xsprintf(out, "%#" PRI_klx " /* %s%s%#" PRI_klx " */",
 65-			 arg, flags_str ?: "", flags_str ? "|" : "", vl);
 66+			 arg, flags_str ? flags_str : "", flags_str ? "|" : "", vl);
 67 	} else {
 68 		xsprintf(out, "%s%s%#" PRI_klx,
 69-			 flags_str ?: "", flags_str ? "|" : "", vl);
 70+			 flags_str ? flags_str : "", flags_str ? "|" : "", vl);
 71 	}
 72 
 73 	return out;
 74diff --git a/src/strace.c b/src/strace.c
 75index ee80de0bc..74a09dc7a 100644
 76--- a/src/strace.c
 77+++ b/src/strace.c
 78@@ -2636,7 +2636,7 @@ init(int argc, char *argv[])
 79 			break;
 80 		case GETOPT_TS:
 81 			tflag_long_set = true;
 82-			if (parse_ts_arg(optarg ?: tflag_str))
 83+			if (parse_ts_arg(optarg ? optarg : tflag_str))
 84 				error_opt_arg(c, lopt, optarg);
 85 			break;
 86 		case 'T':
 87@@ -2710,7 +2710,7 @@ init(int argc, char *argv[])
 88 				error_opt_arg(c, lopt, optarg);
 89 			break;
 90 		case GETOPT_TIPS:
 91-			if (parse_tips_arg(optarg ?: ""))
 92+			if (parse_tips_arg(optarg ? optarg : ""))
 93 				error_opt_arg(c, lopt, optarg);
 94 			break;
 95 		case GETOPT_ARGV0:
 96@@ -2759,13 +2759,13 @@ init(int argc, char *argv[])
 97 			qualify_kvm(optarg);
 98 			break;
 99 		case GETOPT_QUAL_NAMESPACE:
100-			qualify_namespace(optarg ?: namespace_qual);
101+			qualify_namespace(optarg ? optarg : namespace_qual);
102 			break;
103 		case GETOPT_QUAL_QUIET:
104-			qualify_quiet(optarg ?: qflag_qual);
105+			qualify_quiet(optarg ? optarg : qflag_qual);
106 			break;
107 		case GETOPT_QUAL_DECODE_FD:
108-			qualify_decode_fd(optarg ?: yflag_qual);
109+			qualify_decode_fd(optarg ? optarg : yflag_qual);
110 			break;
111 		case GETOPT_QUAL_DECODE_PID:
112 			qualify_decode_pid(optarg);
113diff --git a/src/strauss.c b/src/strauss.c
114index bec85021b..5d49f950a 100644
115--- a/src/strauss.c
116+++ b/src/strauss.c
117@@ -367,6 +367,7 @@ print_totd(void)
118 	struct timeval tv;
119 	size_t id;
120 	size_t i;
121+	const char *tip;
122 
123 	if (printed || show_tips == TIPS_NONE)
124 		return;
125@@ -386,9 +387,10 @@ print_totd(void)
126 	for (i = 0; (i < MAX_TIP_LINES) && (tips_tricks_tweaks[id][i] ||
127 					    (i < (ARRAY_SIZE(tip_right) - 1)));
128 	     i++) {
129+		tip = tips_tricks_tweaks[id][i];
130 		fprintf(stderr, "%s%-*s%s%s\n",
131 			tip_left[MIN(i + 1, ARRAY_SIZE(tip_left) - 1)],
132-			w, tips_tricks_tweaks[id][i] ?: "",
133+			w, tip ? tip : "",
134 			tip_right[MIN(i + 1, ARRAY_SIZE(tip_right) - 1)],
135 			strauss[MIN(3 + i, strauss_lines - 1)]);
136 	}
137diff --git a/src/util.c b/src/util.c
138index 0d6d7da45..e6d6ee667 100644
139--- a/src/util.c
140+++ b/src/util.c
141@@ -640,7 +640,7 @@ printsocket(struct tcb *tcp, int fd, const char *path)
142 		return false;
143 
144 	const char *details = get_sockaddr_by_inode(tcp, fd, inode);
145-	print_string_in_angle_brackets(details ?: path);
146+	print_string_in_angle_brackets(details ? details : path);
147 
148 	return true;
149 }
150@@ -1394,7 +1394,7 @@ printpathn(struct tcb *const tcp, const kernel_ulong_t addr, unsigned int n)
151 	if (nul_seen < 0)
152 		printaddr(addr);
153 	else {
154-		print_quoted_cstring(path, (unsigned int) nul_seen ?: n);
155+		print_quoted_cstring(path, nul_seen ? (unsigned int) nul_seen : n);
156 
157 		if (nul_seen)
158 			selinux_printfilecon(tcp, path);
159-- 
1602.49.0
161