[MONGOCRYPT-512] libmongocrypt has warnings with -Wsign-compare Created: 09/Dec/22  Updated: 28/Oct/23  Resolved: 25/Aug/23

Status: Closed
Project: Libmongocrypt
Component/s: None
Affects Version/s: None
Fix Version/s: 1.9.0

Type: Bug Priority: Unknown
Reporter: Mark Benvenuto Assignee: Roberto Sanchez
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Depends
is depended on by SERVER-72017 Fix and/or suppress compiler warnings... Needs Scheduling
Epic Link: PM-3042

 Description   

Repro

mkdir repro
cd repro
cmake -DCMAKE_C_FLAGS="-Werror -Wsign-compare" -GNinja ..

Tested with GCC 12.2.1 but I think this will repro in any recent GCC or Clang.

Errors:

[11/397] Building C object CMakeFiles/mongocrypt.dir/src/mc-fle2-encryption-placeholder.c.o
FAILED: CMakeFiles/mongocrypt.dir/src/mc-fle2-encryption-placeholder.c.o
/usr/bin/cc -DBSON_STATIC -DKMS_MSG_STATIC -DMLIB_HAVE_STRINGS_H -DMLIB_USER -DMONGOCRYPT_LITTLE_ENDIAN -Dmongocrypt_EXPORTS -I/home/mark/src/libmongocrypt/kms-message/src -I/home/mark/src/libmongocrypt/src -I/home/mark/src/libmongocrypt/repro/src -I/home/mark/src/libmongocrypt/repro/_deps/embedded_mcd-src/src/libbson/src -I/home/mark/src/libmongocrypt/repro/_mongo-c-driver/src/libbson/src -I/home/mark/src/libmongocrypt/repro/_mongo-c-driver/src/libbson/src/bson -Werror -Wsign-compare -fPIC -Werror=implicit -Werror=return-type -Werror=incompatible-pointer-types -Werror=int-conversion -Werror=discarded-qualifiers -Werror=uninitialized -fPIC -std=gnu99 -MD -MT CMakeFiles/mongocrypt.dir/src/mc-fle2-encryption-placeholder.c.o -MF CMakeFiles/mongocrypt.dir/src/mc-fle2-encryption-placeholder.c.o.d -o CMakeFiles/mongocrypt.dir/src/mc-fle2-encryption-placeholder.c.o -c /home/mark/src/libmongocrypt/src/mc-fle2-encryption-placeholder.c
/home/mark/src/libmongocrypt/src/mc-fle2-encryption-placeholder.c: In function ‘mc_validate_sparsity’:
/home/mark/src/libmongocrypt/src/mc-fle2-encryption-placeholder.c:210:17: error: comparison of integer expressions of different signedness: ‘int64_t’ {aka ‘long int’} and ‘long unsigned int’ [-Werror=sign-compare]
  210 |    if (sparsity >= SIZE_MAX) {
      |                 ^~
cc1: all warnings being treated as errors
[15/397] Building C object CMakeFiles/mongocrypt.dir/src/crypto/libcrypto.c.o
FAILED: CMakeFiles/mongocrypt.dir/src/crypto/libcrypto.c.o
/usr/bin/cc -DBSON_STATIC -DKMS_MSG_STATIC -DMLIB_HAVE_STRINGS_H -DMLIB_USER -DMONGOCRYPT_LITTLE_ENDIAN -Dmongocrypt_EXPORTS -I/home/mark/src/libmongocrypt/kms-message/src -I/home/mark/src/libmongocrypt/src -I/home/mark/src/libmongocrypt/repro/src -I/home/mark/src/libmongocrypt/repro/_deps/embedded_mcd-src/src/libbson/src -I/home/mark/src/libmongocrypt/repro/_mongo-c-driver/src/libbson/src -I/home/mark/src/libmongocrypt/repro/_mongo-c-driver/src/libbson/src/bson -Werror -Wsign-compare -fPIC -Werror=implicit -Werror=return-type -Werror=incompatible-pointer-types -Werror=int-conversion -Werror=discarded-qualifiers -Werror=uninitialized -fPIC -std=gnu99 -MD -MT CMakeFiles/mongocrypt.dir/src/crypto/libcrypto.c.o -MF CMakeFiles/mongocrypt.dir/src/crypto/libcrypto.c.o.d -o CMakeFiles/mongocrypt.dir/src/crypto/libcrypto.c.o -c /home/mark/src/libmongocrypt/src/crypto/libcrypto.c
In file included from /home/mark/src/libmongocrypt/repro/_deps/embedded_mcd-src/src/libbson/src/bson/bson-compat.h:35,
                 from /home/mark/src/libmongocrypt/repro/_deps/embedded_mcd-src/src/libbson/src/bson/bson.h:23,
                 from /home/mark/src/libmongocrypt/src/crypto/../mongocrypt-buffer-private.h:20,
                 from /home/mark/src/libmongocrypt/src/crypto/../mongocrypt-crypto-private.h:21,
                 from /home/mark/src/libmongocrypt/src/crypto/libcrypto.c:22:
/home/mark/src/libmongocrypt/src/crypto/libcrypto.c: In function ‘_encrypt_with_cipher’:
/home/mark/src/libmongocrypt/src/crypto/libcrypto.c:84:47: error: comparison of integer expressions of different signedness: ‘int’ and ‘uint32_t’ {aka ‘unsigned int’} [-Werror=sign-compare]
   84 |                 EVP_CIPHER_iv_length (cipher) == args.iv->len);
      |                                               ^~



 Comments   
Comment by Githook User [ 25/Aug/23 ]

Author:

{'name': 'Roberto C. Sánchez', 'email': 'roberto@connexer.com', 'username': 'rcsanchez97'}

Message: MONGOCRYPT-512 fix warnings from -Wsign-compare (#688)
Branch: master
https://github.com/mongodb/libmongocrypt/commit/7e7f3aa7d5166380e80988e7922880f908d2c61c

Comment by Cloud GitHub Webhooks [ 25/Aug/23 ]

rcsanchez97 merged a pull request (MONGOCRYPT-512 fix warnings from -Wsign-compare) into the following branch:
master: 7e7f3aa7d5166380e80988e7922880f908d2c61c

Comment by Roberto Sanchez [ 22/Aug/23 ]

https://github.com/mongodb/libmongocrypt/pull/688

Comment by Kevin Albertson [ 12/Dec/22 ]

May be resolved by https://github.com/mongodb/libmongocrypt/pull/501.

Generated at Thu Feb 08 09:08:51 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.