All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/2] ver_linux: Process input coming from procmaps that matches libc only
@ 2018-05-31 19:22 Alexander Kapshuk
  2018-05-31 19:22 ` [PATCH 2/2] ver_linux: Do not check for ver_linux pattern in version function Alexander Kapshuk
  0 siblings, 1 reply; 2+ messages in thread
From: Alexander Kapshuk @ 2018-05-31 19:22 UTC (permalink / raw)
  To: linux-kernel; +Cc: gregkh, alexander.kapshuk

Currently, input coming from /proc/self/maps is split into fields without
checking whether or not it matches libc.so. This is not efficient.
All text processing should only be performed on lines of input that
match libc.so.

Signed-off-by: Alexander Kapshuk <alexander.kapshuk@gmail.com>
---
 scripts/ver_linux | 12 +++++++-----
 1 file changed, 7 insertions(+), 5 deletions(-)

diff --git a/scripts/ver_linux b/scripts/ver_linux
index 7227994ccf63..e1dc041f903f 100755
--- a/scripts/ver_linux
+++ b/scripts/ver_linux
@@ -32,11 +32,13 @@ BEGIN {
 	printversion("Nfs-utils", version("showmount --version"))
 
 	while (getline <"/proc/self/maps" > 0) {
-		n = split($0, procmaps, "/")
-		if (/libc.*so$/ && match(procmaps[n], /[0-9]+([.]?[0-9]+)+/)) {
-			ver = substr(procmaps[n], RSTART, RLENGTH)
-			printversion("Linux C Library", ver)
-			break
+		if (/libc.*\.so$/) {
+			n = split($0, procmaps, "/")
+			if (match(procmaps[n], /[0-9]+([.]?[0-9]+)+/)) {
+				ver = substr(procmaps[n], RSTART, RLENGTH)
+				printversion("Linux C Library", ver)
+				break
+			}
 		}
 	}
 
-- 
2.17.1

^ permalink raw reply related	[flat|nested] 2+ messages in thread

* [PATCH 2/2] ver_linux: Do not check for ver_linux pattern in version function
  2018-05-31 19:22 [PATCH 1/2] ver_linux: Process input coming from procmaps that matches libc only Alexander Kapshuk
@ 2018-05-31 19:22 ` Alexander Kapshuk
  0 siblings, 0 replies; 2+ messages in thread
From: Alexander Kapshuk @ 2018-05-31 19:22 UTC (permalink / raw)
  To: linux-kernel; +Cc: gregkh, alexander.kapshuk

Checking whether output of commands matches the ver_linux pattern in
the version function is original shell implementation legacy code. When
the original implementation failed to locate a particular utility,
it generated error output along the lines of:

ver_linux:line number: command not found.

The awk implementation, does not contain the name of the script within the
body of the error message returned by the subshell when a given utility
fails to be located. The error message returned is along the lines of:

sh: name of utility: command not found

Safeguarding against the ver_linux pattern being found in the output
being parsed may thus be safely omitted.

Signed-off-by: Alexander Kapshuk <alexander.kapshuk@gmail.com>
---
 scripts/ver_linux | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/scripts/ver_linux b/scripts/ver_linux
index e1dc041f903f..a6c728db05ce 100755
--- a/scripts/ver_linux
+++ b/scripts/ver_linux
@@ -70,7 +70,7 @@ BEGIN {
 function version(cmd,    ver) {
 	cmd = cmd " 2>&1"
 	while (cmd | getline > 0) {
-		if (!/ver_linux/ && match($0, /[0-9]+([.]?[0-9]+)+/)) {
+		if (match($0, /[0-9]+([.]?[0-9]+)+/)) {
 			ver = substr($0, RSTART, RLENGTH)
 			break
 		}
-- 
2.17.1

^ permalink raw reply related	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2018-05-31 19:22 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-05-31 19:22 [PATCH 1/2] ver_linux: Process input coming from procmaps that matches libc only Alexander Kapshuk
2018-05-31 19:22 ` [PATCH 2/2] ver_linux: Do not check for ver_linux pattern in version function Alexander Kapshuk

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.