36 lines
1.0 KiB
Diff
36 lines
1.0 KiB
Diff
|
This patch originates from the Debian project, see https://www.debian.org/
|
||
|
|
||
|
03db4.dpatch by <hesso@pool.math.tu-berlin.de>
|
||
|
|
||
|
|
||
|
libdb4 compatibility adjustments.
|
||
|
|
||
|
In particular, this patch adds extra file permission checking and passes the
|
||
|
DB_CREATE flag to the first invocation of db_open on the file's database
|
||
|
structure, which rids us of the following message:
|
||
|
|
||
|
BDB0635 DB_CREATE must be specified to create databases.
|
||
|
|
||
|
--- nvi-1.81.6.orig/common/msg.c 2009-02-26 14:26:58.350336128 +0100
|
||
|
+++ nvi-1.81.6/common/msg.c 2009-02-26 14:29:05.235335829 +0100
|
||
|
@@ -724,9 +724,18 @@
|
||
|
p = buf;
|
||
|
} else
|
||
|
p = file;
|
||
|
+ if (access(p, F_OK) != 0) {
|
||
|
+ if (first) {
|
||
|
+ first = 0;
|
||
|
+ return (1);
|
||
|
+ }
|
||
|
+ sp->db_error = ENOENT;
|
||
|
+ msgq_str(sp, M_DBERR, p, "%s");
|
||
|
+ return (1);
|
||
|
+ }
|
||
|
if ((sp->db_error = db_create(&db, 0, 0)) != 0 ||
|
||
|
(sp->db_error = db->set_re_source(db, p)) != 0 ||
|
||
|
- (sp->db_error = db_open(db, NULL, DB_RECNO, 0, 0)) != 0) {
|
||
|
+ (sp->db_error = db_open(db, NULL, DB_RECNO, DB_CREATE, 0)) != 0) {
|
||
|
if (first) {
|
||
|
first = 0;
|
||
|
return (1);
|