/* Do I return EINVAL when passing in NULL for something that would otherwise be strdup'd? */ #include <assert.h> #include <stdlib.h> #include <sys/stat.h> #include <errno.h> #include <db.h> #define DIR "dir.test_db_open_notexist_reopen" DB_ENV *env; DB *db; int main (int argc, char *argv[]) { int r; r=system("rm -rf " DIR); assert(r==0); r=mkdir(DIR, 0777); assert(r==0); r=db_env_create(&env, 0); assert(r==0); r=env->set_data_dir(env, NULL); assert(r==EINVAL); r=env->open(env, NULL, DB_PRIVATE, 0777); assert(r==EINVAL); r=env->open(env, DIR, DB_PRIVATE, 0777); assert(r==0); env->set_errpfx(env, NULL); assert(1); //Did not crash. r=env->set_tmp_dir(env, NULL); assert(r==EINVAL); r=env->close(env, 0); assert(r==0); return 0; }