From 4d932ce701936b9f01032cb79bacfce2ecac9698 Mon Sep 17 00:00:00 2001 From: AnotherTest Date: Wed, 29 Apr 2020 20:17:24 +0430 Subject: [PATCH] LibCrypto: Tweak ::prune_padding() to be more intuitive with loop bounds --- Libraries/LibCrypto/Cipher/Mode/Mode.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Libraries/LibCrypto/Cipher/Mode/Mode.h b/Libraries/LibCrypto/Cipher/Mode/Mode.h index f4c45c7849..ee627a4e8b 100644 --- a/Libraries/LibCrypto/Cipher/Mode/Mode.h +++ b/Libraries/LibCrypto/Cipher/Mode/Mode.h @@ -68,8 +68,8 @@ protected: // cannot be padding (the entire block cannot be padding) return; } - for (auto i = maybe_padding_length; i > 0; --i) { - if (data[size - i] != maybe_padding_length) { + for (auto i = size - maybe_padding_length; i < size; ++i) { + if (data[i] != maybe_padding_length) { // not padding, part of data return; } @@ -84,8 +84,8 @@ protected: return; } // FIXME: If we want to constant-time operations, this loop should not stop - for (auto i = maybe_padding_length; i > 0; --i) { - if (data[size - i - 1] != maybe_padding_length) { + for (auto i = size - maybe_padding_length - 1; i < size; ++i) { + if (data[i] != maybe_padding_length) { // note that this is likely invalid padding return; }