Do not assume /tmp is safe to use if TMPDIR is set

This commit is contained in:
sjg 2021-07-04 01:28:54 +00:00
parent 1c866cb93c
commit 9ec9d7e560
2 changed files with 7 additions and 6 deletions

View File

@ -1,5 +1,5 @@
make warning: TMPDIR/roobj: Permission denied.
/tmp
TMPDIR
TMPDIR/roobj
TMPDIR/roobj
exit status 0

View File

@ -1,8 +1,9 @@
# $NetBSD: objdir-writable.mk,v 1.4 2020/11/14 07:36:00 sjg Exp $
# $NetBSD: objdir-writable.mk,v 1.5 2021/07/04 01:28:54 sjg Exp $
# test checking for writable objdir
RO_OBJDIR?= ${TMPDIR:U/tmp}/roobj
TMPDIR?= /tmp
RO_OBJDIR?= ${TMPDIR}/roobj
.if make(do-objdir)
# this should succeed
@ -20,12 +21,12 @@ rm-objdir:
@rmdir ${RO_OBJDIR}
no-objdir:
@MAKEOBJDIR=${RO_OBJDIR} ${.MAKE} -r -f /dev/null -C /tmp -V .OBJDIR
@MAKEOBJDIR=${RO_OBJDIR} ${.MAKE} -r -f /dev/null -C ${TMPDIR} -V .OBJDIR
ro-objdir:
@MAKEOBJDIR=${RO_OBJDIR} ${.MAKE} -r -f /dev/null -C /tmp -V .OBJDIR MAKE_OBJDIR_CHECK_WRITABLE=no
@MAKEOBJDIR=${RO_OBJDIR} ${.MAKE} -r -f /dev/null -C ${TMPDIR} -V .OBJDIR MAKE_OBJDIR_CHECK_WRITABLE=no
explicit-objdir:
@MAKEOBJDIR=/tmp ${.MAKE} -r -f ${MAKEFILE:tA} -C /tmp do-objdir -V .OBJDIR
@MAKEOBJDIR=${TMPDIR} ${.MAKE} -r -f ${MAKEFILE:tA} -C ${TMPDIR} do-objdir -V .OBJDIR
.endif