(adding CryptoPkg maintainers from Maintainers.txt, plus Steven for
clang)

On 10/20/17 17:10, Peter Jones wrote:
> clang-analyzer noticed this:
>
> Pk/CryptPkcs7Verify.c:600:5: warning: Value stored to 'OldSize' is never read
>     OldSize    = BufferSize;
>     ^            ~~~~~~~~~~
> Pk/CryptPkcs7Verify.c:644:5: warning: Value stored to 'OldSize' is never read
>     OldSize    = BufferSize;
>     ^            ~~~~~~~~~~
> 2 warnings generated.

Interesting; Steven runs clang (incl. clang-analyzer AFAIK) frequently,
and I don't recall an earlier report of this.

Anyway,

>
> These are each immediately followed by a loop that initializes them (to
> the same values) a second time, and are otherwise only referenced inside
> that loop, so there's just no point to these assignments at all.

I agree.

While each of both loops might fail to reach the inner assignment to
OldSize -- in case the first X509PopCertificate() call fails in the
loop, for Index=0 --, OldSize is still never read after each loop
(before another assignment to it is reached). So setting OldSize to
anything at all before the loops is superfluous.

>
> Contributed-under: TianoCore Contribution Agreement 1.1
> Signed-off-by: Peter Jones <[email protected]>
> ---
>  CryptoPkg/Library/BaseCryptLib/Pk/CryptPkcs7Verify.c | 2 --
>  1 file changed, 2 deletions(-)
>
> diff --git a/CryptoPkg/Library/BaseCryptLib/Pk/CryptPkcs7Verify.c 
> b/CryptoPkg/Library/BaseCryptLib/Pk/CryptPkcs7Verify.c
> index d564591cb7f9..bf67a1f569a2 100644
> --- a/CryptoPkg/Library/BaseCryptLib/Pk/CryptPkcs7Verify.c
> +++ b/CryptoPkg/Library/BaseCryptLib/Pk/CryptPkcs7Verify.c
> @@ -612,7 +612,6 @@ Pkcs7GetCertificatesList (
>
>    if (CtxChain != NULL) {
>      BufferSize = sizeof (UINT8);
> -    OldSize    = BufferSize;
>      CertBuf    = NULL;
>
>      for (Index = 0; ; Index++) {
> @@ -656,7 +655,6 @@ Pkcs7GetCertificatesList (
>
>    if (CtxUntrusted != NULL) {
>      BufferSize = sizeof (UINT8);
> -    OldSize    = BufferSize;
>      CertBuf    = NULL;
>
>      for (Index = 0; ; Index++) {
>

For your patch:

Reviewed-by: Laszlo Ersek <[email protected]>

Assuming the maintainers are fine with the patch as well, I suggest that
they please replace the word "initializations" with "assignments" in the
subject, to be pedantic on the C-lang level.

(Side note: I would even move OldSize to a lot tighter scope:

> diff --git a/CryptoPkg/Library/BaseCryptLib/Pk/CryptPkcs7Verify.c 
> b/CryptoPkg/Library/BaseCryptLib/Pk/CryptPkcs7Verify.c
> index d564591cb7f9..31a9ecd59ff6 100644
> --- a/CryptoPkg/Library/BaseCryptLib/Pk/CryptPkcs7Verify.c
> +++ b/CryptoPkg/Library/BaseCryptLib/Pk/CryptPkcs7Verify.c
> @@ -477,7 +477,6 @@ Pkcs7GetCertificatesList (
>    UINT8            *CertBuf;
>    UINT8            *OldBuf;
>    UINTN            BufferSize;
> -  UINTN            OldSize;
>    UINT8            *SingleCert;
>    UINTN            CertSize;
>
> @@ -612,10 +611,11 @@ Pkcs7GetCertificatesList (
>
>    if (CtxChain != NULL) {
>      BufferSize = sizeof (UINT8);
> -    OldSize    = BufferSize;
>      CertBuf    = NULL;
>
>      for (Index = 0; ; Index++) {
> +      UINTN OldSize;
> +
>        Status = X509PopCertificate (CtxChain, &SingleCert, &CertSize);
>        if (!Status) {
>          break;
> @@ -656,10 +656,11 @@ Pkcs7GetCertificatesList (
>
>    if (CtxUntrusted != NULL) {
>      BufferSize = sizeof (UINT8);
> -    OldSize    = BufferSize;
>      CertBuf    = NULL;
>
>      for (Index = 0; ; Index++) {
> +      UINTN OldSize;
> +
>        Status = X509PopCertificate (CtxUntrusted, &SingleCert, &CertSize);
>        if (!Status) {
>          break;

However, many edk2 maintainers don't like tight scoping like this.)

Thanks
Laszlo
_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to