| diff --git a/pax/file_subs.c b/pax/file_subs.c |
| index be8d065..41ffd57 100644 |
| |
| |
| @@ -823,7 +823,7 @@ set_attr(const struct file_times *ft, int force_times, mode_t mode, |
| * so do *not* use O_NOFOLLOW. The dev+ino check will |
| * protect us from evil. |
| */ |
| - fd = open(ft->ft_name, O_RDONLY | O_DIRECTORY); |
| + fd = open(ft->ft_name, O_RDWR | O_DIRECTORY); |
| if (fd == -1) { |
| if (!in_sig) |
| syswarn(1, errno, "Unable to restore mode and times" |
| diff --git a/libopenbsd/pwd.c b/libopenbsd/pwd.c |
| index d087150..5d29e3f 100644 |
| |
| |
| @@ -20,11 +20,15 @@ gid_from_group(const char *name, gid_t *gid) |
| return 0; |
| } |
| |
| +const char group_nogroup[] = "nogroup"; |
| + |
| const char * |
| group_from_gid(gid_t gid, int nogroup) |
| { |
| - |
| - return (getgrgid(gid)->gr_name); |
| + struct group *grp; |
| + return (grp =getgrgid(gid)) |
| + ? grp->gr_name |
| + : group_nogroup; |
| } |
| |
| int |
| |
| |
| @@ -2,7 +2,7 @@ |
| |
| CC ?= cc |
| CFLAGS ?= -O2 -pipe |
| -CFLAGS += -I../libopenbsd -include openbsd.h |
| +override CFLAGS += -I../libopenbsd -include openbsd.h |
| |
| LIBS = ../libopenbsd/libopenbsd.a |
| |
| @@ -18,12 +18,7 @@ |
| ${CC} ${LDFLAGS} -o ${PROG} ${OBJS} ${LIBS} |
| |
| install: |
| - install -c -s -m 555 ${PROG} ${PREFIX}/bin/${PROG} |
| - install -c -s -m 555 ${PROG} ${PREFIX}/bin/tar |
| - install -c -s -m 555 ${PROG} ${PREFIX}/bin/cpio |
| - install -c -m 444 ${PROG}.1 ${MANDIR}/man1 |
| - install -c -m 444 tar.1 ${MANDIR}/man1 |
| - install -c -m 444 cpio.1 ${MANDIR}/man1 |
| + |
| |
| clean: |
| rm -f ${PROG} ${OBJS} |
| |
| |
| @@ -2,7 +2,7 @@ |
| |
| CC ?= cc |
| CFLAGS ?= -O2 -pipe |
| -CFLAGS += -I. |
| +override CFLAGS += -I. |
| |
| LIB = libopenbsd.a |
| OBJS = arc4random.o basename.o dirname.o e_atan2.o e_exp.o e_fmod.o e_log.o e_log10.o e_pow.o e_rem_pio2.o e_sqrt.o errc.o fgetln.o \ |