* [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.