[dunfell,1.46,1/1] fetch2: add check for empty SRC_URI hash string

Message ID 2cfc128b583a6e7f44f095fff0cd1e4e937f3790.1648658231.git.steve@sakoman.com
State Accepted, archived
Commit d8c2175f6a7b5fdf111d6a073b2c3dbd3c0b061d
Headers show
Series [dunfell,1.46,1/1] fetch2: add check for empty SRC_URI hash string | expand

Commit Message

Steve Sakoman March 30, 2022, 4:39 p.m. UTC
From: Scott Weaver <weaverjs@gmail.com>

No error was being reported when the hash string was set to empty.
For example: SRC_URI[md5sum] = ""

On a related note (not a bug):
Because whitespace in the string will result in a checksum mismatch, the error
message was updated to make it a little clearer why the error was thrown.
For example: SRC_URI[md5sum] = " " or
SRC_URI[md5sum] = " 209f8326f5137d8817a6276d9577a2f1"

Now creates a message like this:
File: '/home/scott/yocto-cache/downloads/rsync-3.2.3.tar.gz' has md5
checksum '209f8326f5137d8817a6276d9577a2f1' when ' 209f8326f5137d8817a6276d9577a2f1' was expected

[YOCTO #14232]

Signed-off-by: Scott Weaver <weaverjs@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
(cherry picked from commit a13510d0028e234ea2f4744b0d0c38558395c70f)
Signed-off-by: Steve Sakoman <steve@sakoman.com>
---
 lib/bb/fetch2/__init__.py | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

Comments

Jose Quaresma March 30, 2022, 5:24 p.m. UTC | #1
Hi Steve,

Thanks for that, this will improve some errors reporting on the fetch.

Acked-by: Jose Quaresma <quaresma.jose@gmail.com>

Jose

Steve Sakoman <steve@sakoman.com> escreveu no dia quarta, 30/03/2022 à(s)
17:39:

> From: Scott Weaver <weaverjs@gmail.com>
>
> No error was being reported when the hash string was set to empty.
> For example: SRC_URI[md5sum] = ""
>
> On a related note (not a bug):
> Because whitespace in the string will result in a checksum mismatch, the
> error
> message was updated to make it a little clearer why the error was thrown.
> For example: SRC_URI[md5sum] = " " or
> SRC_URI[md5sum] = " 209f8326f5137d8817a6276d9577a2f1"
>
> Now creates a message like this:
> File: '/home/scott/yocto-cache/downloads/rsync-3.2.3.tar.gz' has md5
> checksum '209f8326f5137d8817a6276d9577a2f1' when '
> 209f8326f5137d8817a6276d9577a2f1' was expected
>
> [YOCTO #14232]
>
> Signed-off-by: Scott Weaver <weaverjs@gmail.com>
> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
> (cherry picked from commit a13510d0028e234ea2f4744b0d0c38558395c70f)
> Signed-off-by: Steve Sakoman <steve@sakoman.com>
> ---
>  lib/bb/fetch2/__init__.py | 5 ++++-
>  1 file changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/lib/bb/fetch2/__init__.py b/lib/bb/fetch2/__init__.py
> index dc99914c..3e6555bd 100644
> --- a/lib/bb/fetch2/__init__.py
> +++ b/lib/bb/fetch2/__init__.py
> @@ -562,6 +562,9 @@ def verify_checksum(ud, d, precomputed={}):
>
>          checksum_expected = getattr(ud, "%s_expected" % checksum_id)
>
> +        if checksum_expected == '':
> +            checksum_expected = None
> +
>          return {
>              "id": checksum_id,
>              "name": checksum_name,
> @@ -612,7 +615,7 @@ def verify_checksum(ud, d, precomputed={}):
>
>      for ci in checksum_infos:
>          if ci["expected"] and ci["expected"] != ci["data"]:
> -            messages.append("File: '%s' has %s checksum %s when %s was " \
> +            messages.append("File: '%s' has %s checksum '%s' when '%s'
> was " \
>                              "expected" % (ud.localpath, ci["id"],
> ci["data"], ci["expected"]))
>              bad_checksum = ci["data"]
>
> --
> 2.25.1
>
>
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#13552):
> https://lists.openembedded.org/g/bitbake-devel/message/13552
> Mute This Topic: https://lists.openembedded.org/mt/90135601/5052612
> Group Owner: bitbake-devel+owner@lists.openembedded.org
> Unsubscribe: https://lists.openembedded.org/g/bitbake-devel/unsub [
> quaresma.jose@gmail.com]
> -=-=-=-=-=-=-=-=-=-=-=-
>
>

Patch

diff --git a/lib/bb/fetch2/__init__.py b/lib/bb/fetch2/__init__.py
index dc99914c..3e6555bd 100644
--- a/lib/bb/fetch2/__init__.py
+++ b/lib/bb/fetch2/__init__.py
@@ -562,6 +562,9 @@  def verify_checksum(ud, d, precomputed={}):
 
         checksum_expected = getattr(ud, "%s_expected" % checksum_id)
 
+        if checksum_expected == '':
+            checksum_expected = None
+
         return {
             "id": checksum_id,
             "name": checksum_name,
@@ -612,7 +615,7 @@  def verify_checksum(ud, d, precomputed={}):
 
     for ci in checksum_infos:
         if ci["expected"] and ci["expected"] != ci["data"]:
-            messages.append("File: '%s' has %s checksum %s when %s was " \
+            messages.append("File: '%s' has %s checksum '%s' when '%s' was " \
                             "expected" % (ud.localpath, ci["id"], ci["data"], ci["expected"]))
             bad_checksum = ci["data"]