Skip to content

Commit 15d82f5

Browse files
authored
MONGOCRYPT-783 address -Wformat warnings (#970)
* Add `*_from_json` equivalents that do not require formatting * Address -Wformat-nonliteral warnings * Address -Wformat-extra-args warnings * Address -Wformat-security warnings * Address -Wformat warnings
1 parent 60e591a commit 15d82f5

31 files changed

+204
-160
lines changed

kms-message/src/kms_kmip_request.c

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ kms_kmip_request_register_secretdata_new (void *reserved,
8383

8484
if (len != KMS_KMIP_REQUEST_SECRETDATA_LENGTH) {
8585
KMS_ERROR (req,
86-
"expected SecretData length of %d, got %" PRIu32,
86+
"expected SecretData length of %d, got %zu",
8787
KMS_KMIP_REQUEST_SECRETDATA_LENGTH,
8888
len);
8989
return req;
@@ -463,4 +463,3 @@ kms_kmip_request_decrypt_new (void *reserved, const char* unique_identifer, cons
463463
*/
464464
return kmip_encrypt_decrypt(unique_identifer, ciphertext, len, iv_data, iv_len, false);
465465
}
466-

kms-message/src/kms_message_private.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,9 @@ struct _kms_response_parser_t {
124124
} \
125125
} while (0)
126126

127+
#ifdef __GNUC__
128+
__attribute__((format(__printf__, 3, 4)))
129+
#endif
127130
void
128131
kms_set_error (char *error, size_t size, const char *fmt, ...);
129132

kms-message/src/kms_request_str.h

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,10 +64,19 @@ kms_request_str_append_newline (kms_request_str_t *str);
6464
KMS_MSG_EXPORT (void)
6565
kms_request_str_append_lowercase (kms_request_str_t *str,
6666
kms_request_str_t *appended);
67+
68+
#ifdef __GNUC__
69+
__attribute__((format(__printf__, 2, 3)))
70+
#endif
6771
KMS_MSG_EXPORT (void)
6872
kms_request_str_appendf (kms_request_str_t *str, const char *format, ...);
73+
74+
#ifdef __GNUC__
75+
__attribute__((format(__printf__, 2, 3)))
76+
#endif
6977
KMS_MSG_EXPORT (void)
7078
kms_request_strdupf (kms_request_str_t *str, const char *format, ...);
79+
7180
KMS_MSG_EXPORT (void)
7281
kms_request_str_append_escaped (kms_request_str_t *str,
7382
kms_request_str_t *appended,

kms-message/test/test_kms_request.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1240,7 +1240,7 @@ main (int argc, char *argv[])
12401240

12411241
int ret = kms_message_init ();
12421242
if (ret != 0) {
1243-
TEST_PRINTF ("kms_message_init failed: 0x%x\n", ret);
1243+
TEST_PRINTF ("kms_message_init failed: 0x%d\n", ret);
12441244
abort ();
12451245
}
12461246

src/mc-efc.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ _parse_supported_query_types(bson_iter_t *iter, supported_query_type_flags *out,
5151
BSON_ASSERT_PARAM(iter);
5252
BSON_ASSERT_PARAM(out);
5353
if (!BSON_ITER_HOLDS_DOCUMENT(iter)) {
54-
CLIENT_ERR("When parsing supported query types: Expected type document, got: %d", bson_iter_type(iter));
54+
CLIENT_ERR("When parsing supported query types: Expected type document, got: %d", (int)bson_iter_type(iter));
5555
return false;
5656
}
5757

@@ -66,7 +66,7 @@ _parse_supported_query_types(bson_iter_t *iter, supported_query_type_flags *out,
6666
}
6767
if (!BSON_ITER_HOLDS_UTF8(&query_type_iter)) {
6868
CLIENT_ERR("When parsing supported query types: Expected 'queryType' to be type UTF-8, got: %d",
69-
bson_iter_type(&query_type_iter));
69+
(int)bson_iter_type(&query_type_iter));
7070
return false;
7171
}
7272
const char *queryType = bson_iter_utf8(&query_type_iter, NULL /* length */);
@@ -91,7 +91,7 @@ _parse_field(mc_EncryptedFieldConfig_t *efc, bson_t *field, mongocrypt_status_t
9191
return false;
9292
}
9393
if (!BSON_ITER_HOLDS_BINARY(&field_iter)) {
94-
CLIENT_ERR("expected 'fields.keyId' to be type binary, got: %d", bson_iter_type(&field_iter));
94+
CLIENT_ERR("expected 'fields.keyId' to be type binary, got: %d", (int)bson_iter_type(&field_iter));
9595
return false;
9696
}
9797
_mongocrypt_buffer_t field_keyid;
@@ -106,7 +106,7 @@ _parse_field(mc_EncryptedFieldConfig_t *efc, bson_t *field, mongocrypt_status_t
106106
return false;
107107
}
108108
if (!BSON_ITER_HOLDS_UTF8(&field_iter)) {
109-
CLIENT_ERR("expected 'fields.path' to be type UTF-8, got: %d", bson_iter_type(&field_iter));
109+
CLIENT_ERR("expected 'fields.path' to be type UTF-8, got: %d", (int)bson_iter_type(&field_iter));
110110
return false;
111111
}
112112
field_path = bson_iter_utf8(&field_iter, NULL /* length */);

src/mc-fle2-find-equality-payload-v2.c

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,12 +50,14 @@ void mc_FLE2FindEqualityPayloadV2_cleanup(mc_FLE2FindEqualityPayloadV2_t *payloa
5050
uint32_t len; \
5151
const uint8_t *data; \
5252
if (bson_iter_type(&iter) != BSON_TYPE_BINARY) { \
53-
CLIENT_ERR("Field '" #Name "' expected to be bindata, got: %d", bson_iter_type(&iter)); \
53+
CLIENT_ERR("Field '" #Name "' expected to be bindata, got: %d", (int)bson_iter_type(&iter)); \
5454
goto fail; \
5555
} \
5656
bson_iter_binary(&iter, &subtype, &len, &data); \
5757
if (subtype != BSON_SUBTYPE_BINARY) { \
58-
CLIENT_ERR("Field '" #Name "' expected to be bindata subtype %d, got: %d", BSON_SUBTYPE_BINARY, subtype); \
58+
CLIENT_ERR("Field '" #Name "' expected to be bindata subtype %d, got: %d", \
59+
BSON_SUBTYPE_BINARY, \
60+
(int)subtype); \
5961
goto fail; \
6062
} \
6163
if (!_mongocrypt_buffer_copy_from_binary_iter(&out->Dest, &iter)) { \

src/mc-fle2-find-equality-payload.c

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,12 +51,14 @@ void mc_FLE2FindEqualityPayload_cleanup(mc_FLE2FindEqualityPayload_t *payload) {
5151
uint32_t len; \
5252
const uint8_t *data; \
5353
if (bson_iter_type(&iter) != BSON_TYPE_BINARY) { \
54-
CLIENT_ERR("Field '" #Name "' expected to be bindata, got: %d", bson_iter_type(&iter)); \
54+
CLIENT_ERR("Field '" #Name "' expected to be bindata, got: %d", (int)bson_iter_type(&iter)); \
5555
goto fail; \
5656
} \
5757
bson_iter_binary(&iter, &subtype, &len, &data); \
5858
if (subtype != BSON_SUBTYPE_BINARY) { \
59-
CLIENT_ERR("Field '" #Name "' expected to be bindata subtype %d, got: %d", BSON_SUBTYPE_BINARY, subtype); \
59+
CLIENT_ERR("Field '" #Name "' expected to be bindata subtype %d, got: %d", \
60+
BSON_SUBTYPE_BINARY, \
61+
(int)subtype); \
6062
goto fail; \
6163
} \
6264
if (!_mongocrypt_buffer_copy_from_binary_iter(&out->Dest, &iter)) { \

src/mc-fle2-insert-update-payload-v2.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -137,12 +137,12 @@ void mc_FLE2InsertUpdatePayloadV2_cleanup(mc_FLE2InsertUpdatePayloadV2_t *payloa
137137
uint32_t len; \
138138
const uint8_t *data; \
139139
if (bson_iter_type(&iter) != BSON_TYPE_BINARY) { \
140-
CLIENT_ERR("Field '" #Name "' expected to be bindata, got: %d", bson_iter_type(&iter)); \
140+
CLIENT_ERR("Field '" #Name "' expected to be bindata, got: %d", (int)bson_iter_type(&iter)); \
141141
goto fail; \
142142
} \
143143
bson_iter_binary(&iter, &subtype, &len, &data); \
144144
if (subtype != Type) { \
145-
CLIENT_ERR("Field '" #Name "' expected to be bindata subtype %d, got: %d", Type, subtype); \
145+
CLIENT_ERR("Field '" #Name "' expected to be bindata subtype %d, got: %d", Type, (int)subtype); \
146146
goto fail; \
147147
} \
148148
if (!_mongocrypt_buffer_copy_from_binary_iter(&out->Dest, &iter)) { \

src/mc-fle2-insert-update-payload.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -73,12 +73,12 @@ void mc_FLE2InsertUpdatePayload_cleanup(mc_FLE2InsertUpdatePayload_t *payload) {
7373
uint32_t len; \
7474
const uint8_t *data; \
7575
if (bson_iter_type(&iter) != BSON_TYPE_BINARY) { \
76-
CLIENT_ERR("Field '" #Name "' expected to be bindata, got: %d", bson_iter_type(&iter)); \
76+
CLIENT_ERR("Field '" #Name "' expected to be bindata, got: %d", (int)bson_iter_type(&iter)); \
7777
goto fail; \
7878
} \
7979
bson_iter_binary(&iter, &subtype, &len, &data); \
8080
if (subtype != Type) { \
81-
CLIENT_ERR("Field '" #Name "' expected to be bindata subtype %d, got: %d", Type, subtype); \
81+
CLIENT_ERR("Field '" #Name "' expected to be bindata subtype %d, got: %d", Type, (int)subtype); \
8282
goto fail; \
8383
} \
8484
if (!_mongocrypt_buffer_copy_from_binary_iter(&out->Dest, &iter)) { \

src/mc-fle2-payload-iev.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,7 @@ bool mc_FLE2IndexedEncryptedValue_write(_mongocrypt_crypto_t *crypto,
135135
const uint8_t subtype = (uint8_t)MC_SUBTYPE_FLE2IndexedEqualityEncryptedValue;
136136

137137
if (((int)original_bson_type < 0) || ((int)original_bson_type > 0xFF)) {
138-
CLIENT_ERR("Field 't' must be a valid BSON type, got: %d", original_bson_type);
138+
CLIENT_ERR("Field 't' must be a valid BSON type, got: %d", (int)original_bson_type);
139139
CHECK_AND_GOTO(false);
140140
}
141141

0 commit comments

Comments
 (0)