mirror of
https://git.openafs.org/openafs.git
synced 2025-01-18 15:00:12 +00:00
4e7b6ffc8f
When restoring a volume with the -file argument, vos verifies the last four bytes of the file are the dump end magic before sending the dump to the volume server. Currently, this check is skipped when reading a dump from stdin because it is assumed the data is being read from a pipe. However, this assumption is not correct. The file handle created from stdin may be seekable when redirection is used, and the file handle created from a file name may or may not be seekable, depending on the file type. For example, when redirecting a regular file to stdin, the file handle is seekable, since the shell opens the given file name and associates stdin with the opened file: $ vos restore ... < myfile In addition, the file handle is not seekable when specifying a named pipe (fifo) with the -file option: $ mkfifo mypipe $ vos restore ... -file mypipe Instead of assuming file handles opened from file names are always seekable and file handles opened from stdin are never seekable, use USD_IOCTL() to determine when file handles are seekable, and when seekable, verify the file ends with the dump end magic number. While here, be sure to check the return codes from seek and reads while checking for the dump end magic. Change-Id: I9d16b13682365b82cb9d0b3673c4ed7c3ab4dc2e Reviewed-on: https://gerrit.openafs.org/14758 Reviewed-by: Andrew Deason <adeason@sinenomine.net> Reviewed-by: Cheyenne Wills <cwills@sinenomine.net> Tested-by: BuildBot <buildbot@rampaginggeek.com> Reviewed-by: Michael Meffie <mmeffie@sinenomine.net> |
||
---|---|---|
build-tools | ||
doc | ||
src | ||
tests | ||
.gitignore | ||
.gitreview | ||
.mailmap | ||
.splintrc | ||
acinclude.m4 | ||
CODING | ||
configure-libafs.ac | ||
configure.ac | ||
CONTRIBUTING | ||
INSTALL | ||
libafsdep | ||
LICENSE | ||
Makefile-libafs.in | ||
Makefile.in | ||
NEWS | ||
NTMakefile | ||
README | ||
README-WINDOWS | ||
regen.sh |
AFS is a distributed file system that enables users to share and access all of the files stored in a network of computers as easily as they access the files stored on their local machines. The file system is called distributed for this exact reason: files can reside on many different machines, but are available to users on every machine. OpenAFS 1.0 was originally released by IBM under the terms of the IBM Public License 1.0 (IPL10). For details on IPL10 see the LICENSE file in this directory. The current OpenAFS distribution is licensed under a combination of the IPL10 and many other licenses as granted by the relevant copyright holders. The LICENSE file in this directory contains more details, thought it is not a comprehensive statement. See INSTALL for information about building and installing OpenAFS on various platforms. See CODING for developer information and guidelines. See NEWS for recent changes to OpenAFS.