Commit Graph

69 Commits

Author SHA1 Message Date
bouyer
33be3b5b89 If we hit an unknown header type (likely to be a corrupt record), and
the user choose to not abort, skip to the next header instead of trying
to use it.
This allowed me to recover files from a corrupt dump, instead of
getting a segfault.
2020-09-03 19:31:34 +00:00
enami
c1e351a1b2 Don't truncate at microseconds while preserving timestamps.
One of motivation of this change is to make the behavior of test(1)
-nt/ot with preserved copy (like cp -p) closer to the NetBSD 6.
Of course whether full timestamps are kept or not depends also on
underlying file system.

The ifdef added in mv(1) since existing ifdefs was our local change
to compile it on solaris (though I couldn't test it):
http://mail-index.netbsd.org/tech-userlevel/2014/11/28/msg008831.html
2015-03-02 03:17:24 +00:00
dholland
dcd34a91c5 Stuff UFS_ in front of a few of ufs's symbols to reduce namespace
pollution. Specifically:
   ROOTINO -> UFS_ROOTINO
   WINO -> UFS_WINO
   NXADDR -> UFS_NXADDR
   NDADDR -> UFS_NDADDR
   NIADDR -> UFS_NIADDR
   MAXSYMLINKLEN -> UFS_MAXSYMLINKLEN
   MAXSYMLINKLEN_UFS[12] -> UFS[12]_MAXSYMLINKLEN (for consistency)

Sort out ext2fs's misuse of NDADDR and NIADDR; fortunately, these have
the same values in ext2fs and ffs.

No functional change intended.
2013-01-22 09:39:11 +00:00
joerg
baa8e84b6f Use __dead 2011-08-29 14:34:58 +00:00
dholland
4804dbd307 Add wrapper functions around hash algorithm operations to avoid
undefined behavior arising from illegal function casts. As a side
effect, no longer need -Wno-pointer-sign either.
2011-08-06 20:46:42 +00:00
dholland
51080e041d Simplify silly code and make it closer to type-safe. This causes amd64
gcc to reorder two pairs of instructions for some reason but the object
files are otherwise unchanged.
2011-08-06 17:01:06 +00:00
lukem
292ab8c29d fix sign-compare issues 2009-04-07 12:38:12 +00:00
yamt
bbac3fbde4 remove a useless cast. 2009-02-18 13:13:27 +00:00
hannken
7586bc881e Make restore work for Linux dump volumes by ignoring extended attribute
records on these volumes.  Tested with Centos 5.2.

Reviewed by: Manuel Bouyer <bouyer@netbsd.org>
2008-12-26 19:26:04 +00:00
matt
6a2c9c06cc Fix some inconsisent/conflicting definitions and missing parameters 2008-02-16 17:58:01 +00:00
hannken
f67846b19f Add support for Solaris ufsdump volumes with more than 512*1024 inodes.
Here the bitmaps are written as

	CLRI or BITS with c_count <= 512
	ADDR* for the remaining blocks

Remove the bitmap handling from getfile(), remove xtrmap() and xtrmapskip().
Add new function getbitmap() modeled after getfile() that does bitmap
allocation, bitmap expansion and sets maxino.

Reviewed by: Manuel Bouyer <bouyer@netbsd.org>
2007-02-09 09:36:02 +00:00
christos
746c5b06eb Convert a couple of "(void)&" constructs to volatile.
Flag various unused parameters in restore and dump so that these will
compile with -Wextra.  (Note: restore uses some stuff from dump.)
2006-12-18 20:07:32 +00:00
christos
9e74871aa3 find rmd160.h 2006-10-30 01:21:53 +00:00
christos
dcd203dd29 c99 iniitializer 2006-10-16 03:12:23 +00:00
elad
f9faf32a34 Use crypto/rmd160.h. 2005-09-25 04:16:22 +00:00
christos
c4ee9f6d2e 64 bit inode changes 2005-08-19 02:07:18 +00:00
christos
cb1c4f11bb sprinkle const. 2005-06-27 01:55:52 +00:00
xtraeme
f224c38b66 Kill __P(), use ANSI function declarations. 2005-02-17 15:00:33 +00:00
bouyer
0a0bd752e8 Add an option (-M) to write a mtree specification (which needs to be passed
through sort before being feed to mtree) with file flags, instead of restoring
file flags at the same time as other attributes. Fix various issue with
schg, uchg, sappnd or uappnd flags which cause restore to fail in some case.
Discussed on tech-userlevel:
http://mail-index.netbsd.org/tech-userlevel/2004/10/12/0000.html
2004-10-22 22:38:38 +00:00
enami
5d75faa43f Add -D flag which computes the digest of each regular files in the archive
using specified algorithm (currently md5, rmd160 or sha1) and write them
to standard output.
2004-07-27 02:17:06 +00:00
agc
276d62f603 Move UCB-licensed code from 4-clause to 3-clause licence.
Patches provided by Joel Baker in PR 22308, verified by myself.
2003-08-07 10:04:22 +00:00
fvdl
42614ed3f3 Add support for UFS2. UFS2 is an enhanced FFS, adding support for
64 bit block pointers, extended attribute storage, and a few
other things.

This commit does not yet include the code to manipulate the extended
storage (for e.g. ACLs), this will be done later.

Originally written by Kirk McKusick and Network Associates Laboratories for
FreeBSD.
2003-04-02 10:39:19 +00:00
taca
a89b208abd Since "host" is used when RRESTORE is defined, enclose variable definition
with "#ifdef RRESTORE" and "#endif".
2003-03-27 14:11:51 +00:00
wiz
c632c8bea4 __STDC__ is always defined on NetBSD. 2002-05-25 23:45:12 +00:00
perseant
9aca526666 Don't forget to update curfile, if tape begins with TS_ADDR type block.
In particular, this means that if one member (say the last member) of a tape
set begins with continuation blocks, restore will not consider that tape
to contain all the inodes (curfile.ino==0 at the beginning of the tape).

Close PR #15545.
2002-02-19 19:16:38 +00:00
lukem
f3017fa83a fix compile issues now that on-tape times are int32_t instead of time_t 2001-12-23 14:40:42 +00:00
enami
cdf90f8e31 Remove incorrect advice for lint; the control may return from panic(). 2001-01-24 23:14:04 +00:00
enami
bc7d39c732 Extract file flags of symbolic link. 2000-07-07 13:24:33 +00:00
enami
ab4e6574a4 Add comment and sanity check about why we need not to skip remaining
blocks if we are reading inode bitmaps.
2000-05-23 02:27:33 +00:00
enami
8532100ee5 Correctly extract the inode maps bigger than 512 tape blocks. 2000-05-19 09:22:55 +00:00
sommerfeld
aace28c12e Fix PR9282: restore doesn't print dump header on dumps from host with
unset hostname.
2000-01-27 15:25:00 +00:00
lukem
75ea7b3f7e user friendly enhancments.
reworked from [bin/6710] by Brian Grayson <bgrayson@ece.utexas.edu>
1999-01-03 01:50:34 +00:00
christos
eb5a542716 Add an unlink (-u) flag so that we can use this for installs. 1998-06-24 19:56:11 +00:00
kleink
d3989dbe02 Need <time.h> for ctime() prototype. 1998-04-01 16:21:47 +00:00
mrg
35297f04fc use static int, not just static 1998-03-30 02:13:35 +00:00
enami
eee2902993 Fix the bug introduced in last change; pass IFCHR or IFBLK bit to
mknod(2) via mode.
1997-12-13 22:22:53 +00:00
enami
a722a42f3d Use file mode 0600 when creating special file or fifo.
Suggested by Charles M. Hannum.
1997-11-18 03:08:21 +00:00
enami
076c3b6f00 Restore file attributes after extracting regular file. Fixes PR#4515
from stephen.ma@jtec.com.au:

- call getfile() before altering file attributes.
- open file with mode 0600 instead of 0666 so that file won't remain
  group or world readable/writable even if getfile() terminated.
- also, move skipfile() before altering file attributes in IF{CHR,BLK} and
  IFIFO case for symmetry (suggested by Charles M. Hannum).
1997-11-18 02:56:35 +00:00
mycroft
f19fd07b85 Use futimes(2). Do {f,}utimes(2) *before* {f,}chflags(2), for obvious
reasons.
1997-10-19 13:29:22 +00:00
enami
062c3f563a Restore owner/group/mode/atime/mtime of symbolic links. 1997-10-08 22:51:27 +00:00
lukem
7120b2eafb resolve conflicts from lite-2 merge 1997-09-16 13:44:12 +00:00
lukem
8b03c7fc43 * cleanup for WARNS=1
* fix use of .Nm
1997-09-15 08:04:28 +00:00
lukem
7da56091ad as inspired by a commit message of Todd Miller <millert@cvs.openbsd.org>:
* cleanup a bit for -Wall
* use __progname instead of "restore"
1997-07-06 08:51:28 +00:00
lukem
ceb1313a6a use _PATH_DEFTAPE from <paths.h> instead of "pathnames.h"
cleanup references/examples to use /dev/rst* instead of /dev/rmt*
minor .Nm usage cleanup in man page
1997-04-15 07:12:19 +00:00
lukem
8c5cee237e * use mkstemp() instead of mktemp()
* remove "register" qualifiers
1997-03-19 08:42:51 +00:00
cjs
ea04966433 Fix typo: PR bin/3059 1996-12-26 17:35:35 +00:00
mycroft
728e20590f Make sure to byte-swap all of the relevant fields; especially c_flags. 1996-12-04 03:54:04 +00:00
cgd
bcaa5b7b1c When initializing 'fssize,' the size of the data buffer to be used when
writing data to the file system, if the "optimal" file system I/O
operation block size is less than TP_BSIZE, leave fssize alone (i.e.
at its default setting of MAXBSIZE).  This was causing restore's
stack to be trashed, because the end-of-buffer checking/flushing code
around line 680 would never notice that the buffer was full (because
it'd be comparing a buffer segment index, which would always be >= 1, to
fssize / TP_BSIZE, which could be zero in that case), and would keep
filling and filling and filling...
1996-11-30 18:31:29 +00:00
cgd
a0c5caa042 patches from Tom I Helbekkmo <tih@nhh.no> to deal with type-size issues,
so this works (better, at least) on 64-bit machines (e.g. alpha).
1996-11-30 18:01:52 +00:00
scottr
ef8a0d774c Be more paranoid with our effective uid. 1996-03-15 22:39:26 +00:00