=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/mandoc/mandocdb.c,v retrieving revision 1.202 retrieving revision 1.203 diff -c -r1.202 -r1.203 *** src/usr.bin/mandoc/mandocdb.c 2017/07/28 14:46:46 1.202 --- src/usr.bin/mandoc/mandocdb.c 2017/08/26 12:59:13 1.203 *************** *** 1,4 **** ! /* $OpenBSD: mandocdb.c,v 1.202 2017/07/28 14:46:46 schwarze Exp $ */ /* * Copyright (c) 2011, 2012 Kristaps Dzonsons * Copyright (c) 2011-2017 Ingo Schwarze --- 1,4 ---- ! /* $OpenBSD: mandocdb.c,v 1.203 2017/08/26 12:59:13 schwarze Exp $ */ /* * Copyright (c) 2011, 2012 Kristaps Dzonsons * Copyright (c) 2011-2017 Ingo Schwarze *************** *** 2079,2085 **** static void dbwrite(struct dba *dba) { ! char tfn[32]; int status; pid_t child; --- 2079,2085 ---- static void dbwrite(struct dba *dba) { ! char tfn[33]; int status; pid_t child; *************** *** 2153,2178 **** } out: *strrchr(tfn, '/') = '\0'; ! switch (child = fork()) { ! case -1: ! exitcode = (int)MANDOCLEVEL_SYSERR; ! say("", "&fork rm"); ! return; ! case 0: ! execlp("rm", "rm", "-rf", tfn, (char *)NULL); ! say("", "&exec rm"); ! exit((int)MANDOCLEVEL_SYSERR); ! default: ! break; ! } ! if (waitpid(child, &status, 0) == -1) { ! exitcode = (int)MANDOCLEVEL_SYSERR; ! say("", "&wait rm"); ! } else if (WIFSIGNALED(status) || WEXITSTATUS(status)) { ! exitcode = (int)MANDOCLEVEL_SYSERR; ! say("", "%s: Cannot remove temporary directory", tfn); ! } } static int --- 2153,2161 ---- } out: + unlink(tfn); *strrchr(tfn, '/') = '\0'; ! rmdir(tfn); } static int