]> granicus.if.org Git - postgresql/commit
Don't include file type bits in tar archive's mode field.
authorHeikki Linnakangas <heikki.linnakangas@iki.fi>
Fri, 5 Dec 2014 11:08:22 +0000 (13:08 +0200)
committerHeikki Linnakangas <heikki.linnakangas@iki.fi>
Fri, 5 Dec 2014 11:54:21 +0000 (13:54 +0200)
commitc0f279c469c87a010fda19647c5453baa5ba97ee
tree6882abf38ac3998cda87fce550e0bfef0e283c7a
parentb27b6e75af556b7a07a156eef670e1086c063685
Don't include file type bits in tar archive's mode field.

The "file mode" bits in the tar file header is not supposed to include the
file type bits, e.g. S_IFREG or S_IFDIR. The file type is stored in a
separate field. This isn't a problem in practice, all tar programs ignore
the extra bits, but let's be tidy.

This came up in a discussion around bug #11949, reported by Hendrik Grewe,
although this doesn't fix the issue with tar --append. That turned out to be
a bug in GNU tar. Schilly's tartest program revealed this defect in the tar
created by pg_basebackup.

This problem goes as far as we we've had pg_basebackup, but since this
hasn't caused any problems in practice, let's be conservative and fix in
master only.
src/port/tar.c