Page MenuHomeFreeBSD

D6628.id.diff
No OneTemporary

D6628.id.diff

Index: head/usr.sbin/services_mkdb/services_mkdb.c
===================================================================
--- head/usr.sbin/services_mkdb/services_mkdb.c
+++ head/usr.sbin/services_mkdb/services_mkdb.c
@@ -92,7 +92,7 @@
size_t cnt = 0;
StringList *sl, ***svc;
size_t port, proto;
- char *dbname_dir;
+ char *dbname_dir, *dbname_dirbuf;
int dbname_dir_fd = -1;
setprogname(argv[0]);
@@ -172,7 +172,8 @@
* fsync() to the directory where file lies
*/
if (rename(tname, dbname) == -1 ||
- (dbname_dir = dirname(dbname)) == NULL ||
+ (dbname_dirbuf = strdup(dbname)) == NULL ||
+ (dbname_dir = dirname(dbname_dirbuf)) == NULL ||
(dbname_dir_fd = open(dbname_dir, O_RDONLY|O_DIRECTORY)) == -1 ||
fsync(dbname_dir_fd) != 0) {
if (dbname_dir_fd != -1)

File Metadata

Mime Type
text/plain
Expires
Mon, Apr 6, 7:07 PM (12 h, 48 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
30994029
Default Alt Text
D6628.id.diff (805 B)

Event Timeline