scripts/decodecode | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-)
The decodecode script always returns an exit code of 1, regardless of
whether the operation was successful or not. This is because the
"cleanup" function, which is registered to run on any script exit via
"trap cleanup EXIT", contains an unconditional "exit 1".
Remove the "exit 1" from the "cleanup" function so that it only performs
the necessary file cleanup without forcing a non-zero exit status.
Do that to ensure successful script executions now exit with code 0.
Exits due to errors are all handled by the "die()" function and will
still correctly exit with code 1.
Signed-off-by: Patrick Bellasi <derkling@google.com>
---
scripts/decodecode | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/scripts/decodecode b/scripts/decodecode
index 6364218b2178f..01d25dc110de7 100755
--- a/scripts/decodecode
+++ b/scripts/decodecode
@@ -12,7 +12,6 @@ faultlinenum=1
cleanup() {
rm -f $T $T.s $T.o $T.oo $T.aa $T.dis
- exit 1
}
die() {
@@ -49,7 +48,7 @@ done
if [ -z "$code" ]; then
rm $T
- exit
+ die "Code line not found"
fi
echo $code
--
2.53.0.851.ga537e3e6e9-goog
On Wed, 18 Mar 2026 15:05:45 +0000 Patrick Bellasi <derkling@google.com> wrote:
> The decodecode script always returns an exit code of 1, regardless of
> whether the operation was successful or not. This is because the
> "cleanup" function, which is registered to run on any script exit via
> "trap cleanup EXIT", contains an unconditional "exit 1".
>
> Remove the "exit 1" from the "cleanup" function so that it only performs
> the necessary file cleanup without forcing a non-zero exit status.
>
> Do that to ensure successful script executions now exit with code 0.
> Exits due to errors are all handled by the "die()" function and will
> still correctly exit with code 1.
>
> ...
>
> --- a/scripts/decodecode
> +++ b/scripts/decodecode
> @@ -12,7 +12,6 @@ faultlinenum=1
>
> cleanup() {
> rm -f $T $T.s $T.o $T.oo $T.aa $T.dis
> - exit 1
> }
>
> die() {
> @@ -49,7 +48,7 @@ done
>
> if [ -z "$code" ]; then
> rm $T
> - exit
> + die "Code line not found"
> fi
>
> echo $code
Seems reasonable. Randy added this in 2008 - I'm sure he can remember
why ;)
On 3/18/26 10:55 AM, Andrew Morton wrote:
> On Wed, 18 Mar 2026 15:05:45 +0000 Patrick Bellasi <derkling@google.com> wrote:
>
>> The decodecode script always returns an exit code of 1, regardless of
>> whether the operation was successful or not. This is because the
>> "cleanup" function, which is registered to run on any script exit via
>> "trap cleanup EXIT", contains an unconditional "exit 1".
Who would do that? and why? ;)
>> Remove the "exit 1" from the "cleanup" function so that it only performs
>> the necessary file cleanup without forcing a non-zero exit status.
>>
>> Do that to ensure successful script executions now exit with code 0.
>> Exits due to errors are all handled by the "die()" function and will
>> still correctly exit with code 1.
>>
>> ...
>>
>> --- a/scripts/decodecode
>> +++ b/scripts/decodecode
>> @@ -12,7 +12,6 @@ faultlinenum=1
>>
>> cleanup() {
>> rm -f $T $T.s $T.o $T.oo $T.aa $T.dis
>> - exit 1
>> }
>>
>> die() {
>> @@ -49,7 +48,7 @@ done
>>
>> if [ -z "$code" ]; then
>> rm $T
>> - exit
>> + die "Code line not found"
>> fi
>>
>> echo $code
>
> Seems reasonable. Randy added this in 2008 - I'm sure he can remember
> why ;)
Thanks, Andrew. NFI.
Acked-by: Randy Dunlap <rdunlap@infradead.org>
Thanks for the patch.
--
~Randy
© 2016 - 2026 Red Hat, Inc.