Openembedded Core Discussions
 help / color / mirror / Atom feed
From: Olof Johansson <olof.johansson@axis.com>
To: openembedded-core@lists.openembedded.org
Cc: Olof Johansson <olofjn@axis.com>
Subject: [PATCH 5/5] lib/oe/package.py: is_elf: Make it less prone to false positives
Date: Fri,  1 Dec 2017 16:50:24 +0100	[thread overview]
Message-ID: <20171201155024.3002-6-olofjn@axis.com> (raw)
In-Reply-To: <20171201155024.3002-1-olofjn@axis.com>

Avoid matching substrings that are picked up from paths, for instance.
Do this by anchoring the tokens we look for (e.g "executable" or "not
stripped") with whitespace and punctuation.

Submitted with this patch series is a change that adds the use of
--brief to file. This removes the path prefix to the output, but the
path can still be included in shebang lines (which file will report as
something like "a /foo/bar/baz.py script").

Signed-off-by: Olof Johansson <olofjn@axis.com>
---
 meta/lib/oe/package.py | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/meta/lib/oe/package.py b/meta/lib/oe/package.py
index 976d2ef36c..2bd771cfc5 100644
--- a/meta/lib/oe/package.py
+++ b/meta/lib/oe/package.py
@@ -84,17 +84,17 @@ def is_elf(path, on_error=_is_elf_error):
         error_cb('"file %s" failed')
         return
 
-    if not "ELF" in result:
+    if not result.startswith("ELF "):
         return 0
 
     exec_type = 1
-    if "not stripped" not in result:
+    if ", not stripped" not in result:
         exec_type |= 2
-    if "executable" in result:
+    if " executable, " in result:
         exec_type |= 4
-    if "shared" in result:
+    if " shared object, " in result:
         exec_type |= 8
-    if "relocatable" in result and is_kernel_module(path):
+    if "relocatable, " in result and is_kernel_module(path):
         exec_type |= 16
     return exec_type
 
-- 
2.11.0



  parent reply	other threads:[~2017-12-01 15:59 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-12-01 15:50 [PATCH 0/5] Improve isELF, gets triggered by ELF anywhere in pathname Olof Johansson
2017-12-01 15:50 ` [PATCH 1/5] lib/oe/package.py: Expose is_elf Olof Johansson
2017-12-04  9:34   ` Olof Johansson
2017-12-01 15:50 ` [PATCH 2/5] package.bbclass: Make use of common is_elf function Olof Johansson
2017-12-01 15:50 ` [PATCH 3/5] lib/oe/package.py: is_elf: Don't let filename influence filetype Olof Johansson
2017-12-01 15:50 ` [PATCH 4/5] lib/oe/package.py: is_elf: Disallow shell specials to be expanded Olof Johansson
2017-12-01 15:50 ` Olof Johansson [this message]
2017-12-01 17:43   ` [PATCH 5/5] lib/oe/package.py: is_elf: Make it less prone to false positives Mark Hatle
2017-12-01 21:13     ` Olof Johansson
2017-12-04 10:00       ` Olof Johansson
2017-12-04 19:22         ` Mark Hatle
2017-12-04 12:36   ` Burton, Ross
2017-12-04 15:30     ` Olof Johansson
2017-12-04 15:33       ` Burton, Ross
2017-12-06 21:38         ` Burton, Ross
2017-12-18 11:06           ` Olof Johansson
2017-12-18 11:28             ` Burton, Ross
2017-12-18 12:00               ` Burton, Ross
2017-12-20 11:05                 ` Olof Johansson

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20171201155024.3002-6-olofjn@axis.com \
    --to=olof.johansson@axis.com \
    --cc=olofjn@axis.com \
    --cc=openembedded-core@lists.openembedded.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox