Be more careful about default args.
This commit is contained in:
parent
2c26cfe776
commit
dd96ca77da
|
@ -556,15 +556,16 @@ bsdbtopen(self, args)
|
|||
int flags = O_RDONLY;
|
||||
int mode = 0666;
|
||||
int cachesize = 0;
|
||||
int maxkeypage;
|
||||
int minkeypage;
|
||||
int btflags;
|
||||
unsigned int psize;
|
||||
int lorder;
|
||||
int maxkeypage = 0;
|
||||
int minkeypage = 0;
|
||||
int btflags = 0;
|
||||
unsigned int psize = 0;
|
||||
int lorder = 0;
|
||||
|
||||
if (!newgetargs(args, "s|siiiiiii",
|
||||
&file, &flag, &mode,
|
||||
&btflags, &cachesize, &maxkeypage, &minkeypage, &psize, &lorder))
|
||||
&file, &flag, &mode,
|
||||
&btflags, &cachesize, &maxkeypage, &minkeypage,
|
||||
&psize, &lorder))
|
||||
return NULL;
|
||||
if (flag != NULL) {
|
||||
/* XXX need a way to pass O_EXCL, O_EXLOCK, O_NONBLOCK, O_SHLOCK */
|
||||
|
@ -594,8 +595,10 @@ bsdbtopen(self, args)
|
|||
}
|
||||
}
|
||||
return newdbbtobject(file, flags, mode,
|
||||
btflags, cachesize, maxkeypage, minkeypage, psize, lorder);
|
||||
btflags, cachesize, maxkeypage, minkeypage,
|
||||
psize, lorder);
|
||||
}
|
||||
|
||||
static object *
|
||||
bsdrnopen(self, args)
|
||||
object *self;
|
||||
|
@ -606,16 +609,17 @@ bsdrnopen(self, args)
|
|||
int flags = O_RDONLY;
|
||||
int mode = 0666;
|
||||
int cachesize = 0;
|
||||
int rnflags;
|
||||
unsigned int psize;
|
||||
int lorder;
|
||||
size_t reclen;
|
||||
char *bval;
|
||||
char *bfname;
|
||||
int rnflags = 0;
|
||||
unsigned int psize = 0;
|
||||
int lorder = 0;
|
||||
size_t reclen = 0;
|
||||
char *bval = "";
|
||||
char *bfname = NULL;
|
||||
|
||||
if (!newgetargs(args, "s|siiiiiiss",
|
||||
&file, &flag, &mode,
|
||||
&rnflags, &cachesize, &psize, &lorder, &reclen, &bval, &bfname))
|
||||
&file, &flag, &mode,
|
||||
&rnflags, &cachesize, &psize, &lorder,
|
||||
&reclen, &bval, &bfname))
|
||||
return NULL;
|
||||
if (flag != NULL) {
|
||||
/* XXX need a way to pass O_EXCL, O_EXLOCK, O_NONBLOCK, O_SHLOCK */
|
||||
|
@ -643,6 +647,11 @@ bsdrnopen(self, args)
|
|||
return NULL;
|
||||
#endif
|
||||
}
|
||||
else if (flag[1] != '\0') {
|
||||
err_setstr(BsddbError,
|
||||
"Flag char 2 should be 'l' or absent");
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
return newdbrnobject(file, flags, mode,
|
||||
rnflags, cachesize, psize, lorder, bval[0], bfname);
|
||||
|
|
Loading…
Reference in New Issue