From 911935d7bdd166ede35ddbad4f454eaccd2a0982 Mon Sep 17 00:00:00 2001 From: Ross Burton Date: Tue, 21 Nov 2023 14:06:17 +0000 Subject: [PATCH] lib/oe/patch: ensure os.chdir restoring always happens If we chdir(), do the chdir back to the original directory in a finally block so they always run. (From OE-Core rev: 1680d1766445b21e35c6b874c4767b385862017f) Signed-off-by: Ross Burton Signed-off-by: Richard Purdie (cherry picked from commit cdc40292818683b6df1c814498c7589450a163fa) Signed-off-by: Steve Sakoman --- meta/lib/oe/patch.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/meta/lib/oe/patch.py b/meta/lib/oe/patch.py index ff9afc9df9..9b480b2b28 100644 --- a/meta/lib/oe/patch.py +++ b/meta/lib/oe/patch.py @@ -772,8 +772,9 @@ class NOOPResolver(Resolver): self.patchset.Push() except Exception: import sys - os.chdir(olddir) raise + finally: + os.chdir(olddir) # Patch resolver which relies on the user doing all the work involved in the # resolution, with the exception of refreshing the remote copy of the patch @@ -833,9 +834,9 @@ class UserResolver(Resolver): # User did not fix the problem. Abort. raise PatchError("Patch application failed, and user did not fix and refresh the patch.") except Exception: - os.chdir(olddir) raise - os.chdir(olddir) + finally: + os.chdir(olddir) def patch_path(url, fetch, workdir, expand=True):