Use mdb_size_t for line numbers in mdb_load

This matches the mdb_size_t entry counts.
ntdll
Hallvard Furuseth 9 years ago
parent 12ad38d67f
commit 0842f998ee
  1. 29
      libraries/liblmdb/mdb_load.c

@ -25,7 +25,7 @@ static int mode;
static char *subname = NULL;
static size_t lineno;
static mdb_size_t lineno;
static int version;
static int flags;
@ -38,7 +38,6 @@ static MDB_envinfo info;
static MDB_val kbuf, dbuf;
#define Z MDB_FMT_Z
#define Y MDB_FMT_Y
#define STRLENOF(s) (sizeof(s)-1)
@ -70,7 +69,7 @@ static void readhdr(void)
if (!strncmp(dbuf.mv_data, "VERSION=", STRLENOF("VERSION="))) {
version=atoi((char *)dbuf.mv_data+STRLENOF("VERSION="));
if (version > 3) {
fprintf(stderr, "%s: line %" Z "d: unsupported VERSION %d\n",
fprintf(stderr, "%s: line %" Y "u: unsupported VERSION %d\n",
prog, lineno, version);
exit(EXIT_FAILURE);
}
@ -80,7 +79,7 @@ static void readhdr(void)
if (!strncmp((char *)dbuf.mv_data+STRLENOF("FORMAT="), "print", STRLENOF("print")))
mode |= PRINT;
else if (strncmp((char *)dbuf.mv_data+STRLENOF("FORMAT="), "bytevalue", STRLENOF("bytevalue"))) {
fprintf(stderr, "%s: line %" Z "d: unsupported FORMAT %s\n",
fprintf(stderr, "%s: line %" Y "u: unsupported FORMAT %s\n",
prog, lineno, (char *)dbuf.mv_data+STRLENOF("FORMAT="));
exit(EXIT_FAILURE);
}
@ -91,7 +90,7 @@ static void readhdr(void)
subname = strdup((char *)dbuf.mv_data+STRLENOF("database="));
} else if (!strncmp(dbuf.mv_data, "type=", STRLENOF("type="))) {
if (strncmp((char *)dbuf.mv_data+STRLENOF("type="), "btree", STRLENOF("btree"))) {
fprintf(stderr, "%s: line %" Z "d: unsupported type %s\n",
fprintf(stderr, "%s: line %" Y "u: unsupported type %s\n",
prog, lineno, (char *)dbuf.mv_data+STRLENOF("type="));
exit(EXIT_FAILURE);
}
@ -101,7 +100,7 @@ static void readhdr(void)
if (ptr) *ptr = '\0';
i = sscanf((char *)dbuf.mv_data+STRLENOF("mapaddr="), "%p", &info.me_mapaddr);
if (i != 1) {
fprintf(stderr, "%s: line %" Z "d: invalid mapaddr %s\n",
fprintf(stderr, "%s: line %" Y "u: invalid mapaddr %s\n",
prog, lineno, (char *)dbuf.mv_data+STRLENOF("mapaddr="));
exit(EXIT_FAILURE);
}
@ -111,7 +110,7 @@ static void readhdr(void)
if (ptr) *ptr = '\0';
i = sscanf((char *)dbuf.mv_data+STRLENOF("mapsize="), "%" Y "u", &info.me_mapsize);
if (i != 1) {
fprintf(stderr, "%s: line %" Z "d: invalid mapsize %s\n",
fprintf(stderr, "%s: line %" Y "u: invalid mapsize %s\n",
prog, lineno, (char *)dbuf.mv_data+STRLENOF("mapsize="));
exit(EXIT_FAILURE);
}
@ -121,7 +120,7 @@ static void readhdr(void)
if (ptr) *ptr = '\0';
i = sscanf((char *)dbuf.mv_data+STRLENOF("maxreaders="), "%u", &info.me_maxreaders);
if (i != 1) {
fprintf(stderr, "%s: line %" Z "d: invalid maxreaders %s\n",
fprintf(stderr, "%s: line %" Y "u: invalid maxreaders %s\n",
prog, lineno, (char *)dbuf.mv_data+STRLENOF("maxreaders="));
exit(EXIT_FAILURE);
}
@ -137,12 +136,12 @@ static void readhdr(void)
if (!dbflags[i].bit) {
ptr = memchr(dbuf.mv_data, '=', dbuf.mv_size);
if (!ptr) {
fprintf(stderr, "%s: line %" Z "d: unexpected format\n",
fprintf(stderr, "%s: line %" Y "u: unexpected format\n",
prog, lineno);
exit(EXIT_FAILURE);
} else {
*ptr = '\0';
fprintf(stderr, "%s: line %" Z "d: unrecognized keyword ignored: %s\n",
fprintf(stderr, "%s: line %" Y "u: unrecognized keyword ignored: %s\n",
prog, lineno, (char *)dbuf.mv_data);
}
}
@ -152,7 +151,7 @@ static void readhdr(void)
static void badend(void)
{
fprintf(stderr, "%s: line %" Z "d: unexpected end of input\n",
fprintf(stderr, "%s: line %" Y "u: unexpected end of input\n",
prog, lineno);
}
@ -210,7 +209,7 @@ badend:
buf->mv_data = realloc(buf->mv_data, buf->mv_size*2);
if (!buf->mv_data) {
Eof = 1;
fprintf(stderr, "%s: line %" Z "d: out of memory, line too long\n",
fprintf(stderr, "%s: line %" Y "u: out of memory, line too long\n",
prog, lineno);
return EOF;
}
@ -402,7 +401,7 @@ int main(int argc, char *argv[])
rc = readline(&data, &dbuf);
if (rc) {
fprintf(stderr, "%s: line %" Z "d: failed to read key value\n", prog, lineno);
fprintf(stderr, "%s: line %" Y "u: failed to read key value\n", prog, lineno);
goto txn_abort;
}
@ -417,7 +416,7 @@ int main(int argc, char *argv[])
if (batch == 100) {
rc = mdb_txn_commit(txn);
if (rc) {
fprintf(stderr, "%s: line %" Z "d: txn_commit: %s\n",
fprintf(stderr, "%s: line %" Y "u: txn_commit: %s\n",
prog, lineno, mdb_strerror(rc));
goto env_close;
}
@ -437,7 +436,7 @@ int main(int argc, char *argv[])
rc = mdb_txn_commit(txn);
txn = NULL;
if (rc) {
fprintf(stderr, "%s: line %" Z "d: txn_commit: %s\n",
fprintf(stderr, "%s: line %" Y "u: txn_commit: %s\n",
prog, lineno, mdb_strerror(rc));
goto env_close;
}

Loading…
Cancel
Save