[Date Prev][Date Next]
[Chronological]
[Thread]
[Top]
(ITS#8453) lmdb: fix warning on Apple platforms
Full_Name: Pierre Chapuis
Version:
OS: macOS / iOS
URL: ftp://ftp.openldap.org/incoming/
Submission from: (NULL) (90.79.254.46)
Apple compilers (and probably others) do not allow calling sprintf with fewer
arguments than the format calls for.
The warning is:
mdb.c:10720:46: warning: data argument not used by format string
[-Wformat-extra-args]
(int)mr[i].mr_pid, (size_t)mr[i].mr_tid,
txnid);
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.3.sdk/usr/include/secure/_stdio.h:47:56:
note:
expanded from macro 'sprintf'
__builtin___sprintf_chk (str, 0, __darwin_obsz(str), __VA_ARGS__)
^~~~~~~~~~~
Proposed patch against current LMDB sterer:
diff --git a/libraries/liblmdb/mdb.c b/libraries/liblmdb/mdb.c
index 79a958b..84afe4f 100644
--- a/libraries/liblmdb/mdb.c
+++ b/libraries/liblmdb/mdb.c
@@ -10715,9 +10715,13 @@ mdb_reader_list(MDB_env *env, MDB_msg_func *func,
void *ctx)
for (i=0; i<rdrs; i++) {
if (mr[i].mr_pid) {
txnid_t txnid = mr[i].mr_txnid;
- sprintf(buf, txnid == (txnid_t)-1 ?
- "%10d %"Z"x -\n" : "%10d %"Z"x %"Y"u\n",
- (int)mr[i].mr_pid, (size_t)mr[i].mr_tid,
txnid);
+ if (txnid == (txnid_t)-1) {
+ sprintf(buf, "%10d %"Z"x -\n",
+ (int)mr[i].mr_pid,
(size_t)mr[i].mr_tid);
+ } else {
+ sprintf(buf, "%10d %"Z"x %"Z"u\n",
+ (int)mr[i].mr_pid,
(size_t)mr[i].mr_tid, txnid);
+ }
if (first) {
first = 0;
rc = func(" pid thread txnid\n",
ctx);