On Wed, Feb 12, 2025 at 04:22:59PM -0600, Tom Rini wrote: > With a newer pylint we have a few warnings show up now that are harder > to handle. The first problem is that when we call self.Raise(...) this > is no longer enough to have pylint see that we're now bailing out and > won't attempt to reference an unassigned variable. This is all of the > pylint disabling, with the exception of _AddNode. > > The problem with _AddNode is that before we call this function we set > fsw as libfdt.FdtSw() and I'm unsure how best to rework the code. > > The final problem is in CheckSetHashValue() where the function only > handles one algorithm but the intention is to handle others as well. > Once another algorithm is added and then also error handling for no > algorithm is added, we would not attempt to use data before it's been > assigned. > > As I'm not confident all of these are the right way to handle the > problem I've marked this as RFC and not split the changes up more. > > Signed-off-by: Tom Rini <tr...@konsulko.com> > --- > Cc: Simon Glass <s...@chromium.org> > --- > tools/binman/etype/fdtmap.py | 1 + > tools/binman/etype/image_header.py | 1 + > tools/binman/etype/pre_load.py | 1 + > tools/binman/etype/x509_cert.py | 1 + > tools/binman/ftest.py | 1 + > tools/binman/state.py | 4 ++-- > 6 files changed, 7 insertions(+), 2 deletions(-) > > diff --git a/tools/binman/etype/fdtmap.py b/tools/binman/etype/fdtmap.py > index f1f6217940f2..a2b0d27fcc5f 100644 > --- a/tools/binman/etype/fdtmap.py > +++ b/tools/binman/etype/fdtmap.py > @@ -109,6 +109,7 @@ class Entry_fdtmap(Entry): > def _AddNode(node): > """Add a node to the FDT map""" > for pname, prop in node.props.items(): > + # pylint: disable=locally-disabled, > possibly-used-before-assignment > fsw.property(pname, prop.bytes) > for subnode in node.subnodes: > with fsw.add_node(subnode.name): > diff --git a/tools/binman/etype/image_header.py > b/tools/binman/etype/image_header.py > index 240118849580..6d8db9eed564 100644 > --- a/tools/binman/etype/image_header.py > +++ b/tools/binman/etype/image_header.py > @@ -72,6 +72,7 @@ class Entry_image_header(Entry): > image_size = self.section.GetImageSize() or 0 > base = (0 if self.location != 'end' else image_size) > offset = (image_pos - base) & 0xffffffff > + # pylint: disable=locally-disabled, possibly-used-before-assignment > data = IMAGE_HEADER_MAGIC + struct.pack('<I', offset) > return data > > diff --git a/tools/binman/etype/pre_load.py b/tools/binman/etype/pre_load.py > index 2e4c72359ff3..e2615e1c7d1b 100644 > --- a/tools/binman/etype/pre_load.py > +++ b/tools/binman/etype/pre_load.py > @@ -122,6 +122,7 @@ class Entry_pre_load(Entry_collection): > else: > self.Raise(padding_name + " is not supported") > > + # pylint: disable=locally-disabled, possibly-used-before-assignment > sig = padding.new(key, **padding_args).sign(hash_image) > > hash_sig = SHA256.new() > diff --git a/tools/binman/etype/x509_cert.py b/tools/binman/etype/x509_cert.py > index 29630d1b86c8..15d0766051c2 100644 > --- a/tools/binman/etype/x509_cert.py > +++ b/tools/binman/etype/x509_cert.py > @@ -141,6 +141,7 @@ class Entry_x509_cert(Entry_collection): > dm_data_ext_boot_block=self.dm_data_ext_boot_block, > bootcore_opts=self.bootcore_opts > ) > + # pylint: disable=locally-disabled, possibly-used-before-assignment > if stdout is not None: > data = tools.read_file(output_fname) > else: > diff --git a/tools/binman/ftest.py b/tools/binman/ftest.py > index a553ca9e5642..b6e58decb008 100644 > --- a/tools/binman/ftest.py > +++ b/tools/binman/ftest.py > @@ -6387,6 +6387,7 @@ fdt fdtmap Extract the > devicetree blob from the fdtmap > expect_val = entry.image_pos > elif prop_name == 'size': > expect_val = entry.size > + # pylint: disable=locally-disabled, > possibly-used-before-assignment > self.assertEqual(expect_val, val) > > def testSymbolsElfBad(self): > diff --git a/tools/binman/state.py b/tools/binman/state.py > index 45bae40c525a..ca3f857f1943 100644 > --- a/tools/binman/state.py > +++ b/tools/binman/state.py > @@ -410,8 +410,8 @@ def CheckSetHashValue(node, get_data_func): > m = hashlib.sha256() > m.update(get_data_func()) > data = m.digest() > - for n in GetUpdateNodes(hash_node): > - n.SetData('value', data) > + for n in GetUpdateNodes(hash_node): > + n.SetData('value', data) > > def SetAllowEntryExpansion(allow): > """Set whether post-pack expansion of entries is allowed
Any thoughts on this Simon? Moving to a newer Ubuntu host for CI is blocked on moving to a newer pylint. Thanks. -- Tom
signature.asc
Description: PGP signature