libgocryptfs/internal
Jakob Unterwurzacher 2d01d5f2d4 tlog: always trim trailing newlines
The messages we print through tlog sometimes do, sometimes do
not contain a trailing newline. The stdlib logger usually drops
trailing newlines automatically, but tlog postfixes ColorReset to
the caller's message, so the logger logic does not work when we
print colored output.

Drop the newlines on our own, and add a test.

Fixes the blank lines in fsck output:

~/go/src/github.com/rfjakob/gocryptfs/tests/fsck$ ./run_fsck.bash
Reading password from extpass program
Decrypting master key
OpenDir "": invalid entry "invalid_file_name.3": illegal base64 data at input byte 17
OpenDir "": invalid entry "invalid_file_name_2": bad message
fsck: corrupt entry in dir "": "invalid_file_name.3"
fsck: corrupt entry in dir "": "invalid_file_name_2"
OpenDir "": invalid entry "invalid_file_name____1": bad message
fsck: corrupt entry in dir "": "invalid_file_name____1"
doRead 4327225: corrupt block #0: stupidgcm: message authentication failed
fsck: error reading file "corrupt_file" (inum 4327225): 5=input/output error
cipherSize 40 < overhead 50: corrupt file

doRead 4327074: corrupt header: ParseHeader: invalid version, want=2 have=22616
cipherSize 40 < overhead 50: corrupt file

fsck: error reading file "corrupt_file_2" (inum 4327074): 5=input/output error
Readlink "s-P7PcQDUcVkoeMDnC3EYA": decrypting target failed: stupidgcm: message authentication failed
fsck: error reading symlink "corrupt_symlink": 5=input/output error
Readlink "iI0MtUdzELPeOAZYwYZFee169hpGgd3l2PXQBcc9sl4": decrypting target failed: illegal base64 data at input byte 0
fsck: error reading symlink "corrupt_symlink_2": 5=input/output error
OpenDir "yrwcjj2qoC4IYvhw9sbfRg": could not read gocryptfs.diriv: wanted 16 bytes, got 17
fsck: error opening dir "diriv_too_long": 5=input/output error
OpenDir "trqecbMNXdzLqzpk7fSfKw": could not read gocryptfs.diriv: wanted 16 bytes, got 3
fsck: error opening dir "diriv_too_short": 5=input/output error
cipherSize 8 < header size 18: corrupt file

readFileID 4327049: incomplete file, got 8 instead of 19 bytes
fsck: corrupt file "incomplete_file_1" (inode 4327049)
readFileID 4327038: incomplete file, got 18 instead of 19 bytes
fsck: corrupt file "incomplete_file_2" (inode 4327038)
cipherSize 1 < header size 18: corrupt file

readFileID 4327063: incomplete file, got 1 instead of 19 bytes
fsck: corrupt file "incomplete_file_3" (inode 4327063)
fsck: error opening dir "missing_diriv": 2=no such file or directory
ListXAttr: invalid xattr name "user.gocryptfs.0a5e7yWl0SGUGeWB0Sy2K0": bad message
fsck: corrupt xattr name on file "xattr_corrupt_name": "user.gocryptfs.0a5e7yWl0SGUGeWB0Sy2K0"
GetXAttr: stupidgcm: message authentication failed
fsck: error reading xattr "user.foo" from "xattr_corrupt_value": 5=input/output error
fsck summary: 15 corrupt files
2018-09-23 11:28:49 +02:00
..
configfile configfile: add LoadAndDecrypt wrapper 2018-09-08 12:40:29 +02:00
contentenc contentenc: reserve one extra block in pool plaintext buffers 2018-07-15 11:39:19 +02:00
cryptocore tlog: stop embedding log.Logger to prevent mistakes 2018-02-28 09:02:18 +01:00
ctlsock fsck: clean up log output 2018-04-02 18:32:30 +02:00
exitcodes reverse mode: add --exclude option 2018-08-11 23:26:49 +02:00
fusefrontend fusefrontend: use OpenDirNofollow in openBackingDir 2018-09-08 19:27:33 +02:00
fusefrontend_reverse syscallcompat: use O_PATH in OpenDirNofollow 2018-09-08 18:06:33 +02:00
nametransform fusefrontend: doWrite: delete file header if first write fails 2018-07-15 15:12:55 +02:00
openfiletable fusefronted: disallow writes running concurrently with reads 2018-07-22 22:29:22 +02:00
pathiv pathiv: fix test failure on Go 1.6 2017-05-31 08:21:36 +02:00
prefer_openssl prefer_openssl: default to Go GCM on OSX 2016-12-10 21:04:17 +01:00
readpassword trezor: show support in version string 2018-08-15 23:31:37 +02:00
serialize_reads fix golint complaints 2017-04-29 14:50:58 +02:00
siv_aead siv_aead: create private key copy and implement wiping 2018-02-18 16:01:46 +01:00
speed fix golint complaints 2017-04-29 14:50:58 +02:00
stupidgcm stupidgcm: return error on too short input instead of panicing 2018-05-10 23:00:02 +02:00
syscallcompat syscallcompat: untangle Openat flag check 2018-09-22 19:38:47 +02:00
tlog tlog: always trim trailing newlines 2018-09-23 11:28:49 +02:00