]>
ruderich.org/simon Gitweb - nsscash/nsscash.git/log
summary |
shortlog | log |
commit |
commitdiff |
tree
first ⋅ prev ⋅ next
Simon Ruderich [Wed, 26 Jun 2019 12:13:02 +0000 (14:13 +0200)]
nsscash: main_test: add group tests
Simon Ruderich [Wed, 26 Jun 2019 12:12:26 +0000 (14:12 +0200)]
nsscash: main_test: add plain tests
Simon Ruderich [Wed, 26 Jun 2019 12:11:29 +0000 (14:11 +0200)]
nsscash: main_test: add passwd tests
Simon Ruderich [Wed, 26 Jun 2019 12:07:32 +0000 (14:07 +0200)]
nsscash: main_test: add infrastructure and first basic test
Simon Ruderich [Wed, 26 Jun 2019 07:30:24 +0000 (09:30 +0200)]
nsscash: file_test: restore log output after the test
Otherwise this affects other test files as well.
Simon Ruderich [Tue, 25 Jun 2019 08:07:45 +0000 (10:07 +0200)]
README: mention why write bits are removed from generated files
Simon Ruderich [Mon, 17 Jun 2019 19:17:03 +0000 (21:17 +0200)]
nsscash: remove write permissions of created files
Simon Ruderich [Mon, 17 Jun 2019 19:07:19 +0000 (21:07 +0200)]
nsscash: test deployFile() sets permissions properly
Simon Ruderich [Mon, 17 Jun 2019 18:43:42 +0000 (20:43 +0200)]
nss: remove pointer indirection in search_key's id member
There's no reason to use a pointer here. Setting name to NULL already
marks that an id is to be used.
Simon Ruderich [Mon, 17 Jun 2019 18:39:52 +0000 (20:39 +0200)]
nss: reduce code duplication in _nss_cash_setpwent/_nss_cash_setgrent
Simon Ruderich [Fri, 14 Jun 2019 18:28:29 +0000 (20:28 +0200)]
nsscash: convert: create file atomically
Previously the file was first truncated or created and then written to.
Although "convert" is not designed to be used for deployment, it is a
unexpected behavior.
Simon Ruderich [Fri, 14 Jun 2019 18:21:12 +0000 (20:21 +0200)]
nsscash: go fmt
Simon Ruderich [Fri, 14 Jun 2019 18:20:25 +0000 (20:20 +0200)]
nsscash: return error instead of calling log.Fatal()
Simon Ruderich [Fri, 14 Jun 2019 18:19:02 +0000 (20:19 +0200)]
nsscash: split main() into separate functions
Simon Ruderich [Thu, 13 Jun 2019 06:25:09 +0000 (08:25 +0200)]
nsscash: store and check hash of deployed files
The goal is to detect manual modifications of the deployed files. As we
store only the last modification in the state file and don't check the
deployed file itself, modifications go unnoticed.
An alternative would be to check the last modification time of the
deployed files. But a hash is safer as possible corruptions to the file
are detected as well.
Simon Ruderich [Thu, 13 Jun 2019 05:58:04 +0000 (07:58 +0200)]
nsscash: write state on each successful run
Simon Ruderich [Wed, 12 Jun 2019 07:30:35 +0000 (09:30 +0200)]
Makefile: remove recursion from go commands
All go files are in the top level directory.
Simon Ruderich [Wed, 12 Jun 2019 07:20:10 +0000 (09:20 +0200)]
nss: add todo
Simon Ruderich [Wed, 12 Jun 2019 06:51:30 +0000 (08:51 +0200)]
README: use proper comment character for TOML files
Simon Ruderich [Wed, 12 Jun 2019 06:51:13 +0000 (08:51 +0200)]
Makefile: run go test in test target, not all target
Simon Ruderich [Wed, 12 Jun 2019 06:50:39 +0000 (08:50 +0200)]
nsscash: go fmt
Simon Ruderich [Wed, 12 Jun 2019 06:48:16 +0000 (08:48 +0200)]
nsscash: replace %s with %v in format string for File.Type
File.Type is an int value with a stringer go:generate statement. Using
%s breaks running `go test` (which runs `go vet`) before running `go
generate`. Using %v has the same result and uses the stringified version
when available.
Simon Ruderich [Wed, 12 Jun 2019 06:45:49 +0000 (08:45 +0200)]
nsscash: report error for passwd/group without trailing newline
Previously this case was hidden because ReadString() can return a string
and an EOF error. To prevent this issue from going unnoticed error out.
Simon Ruderich [Tue, 11 Jun 2019 09:05:49 +0000 (11:05 +0200)]
nss: Makefile: don't link against asan
This is not necessary and was only a hack to handle non-empty LD_PRELOAD
environment variables. We explicitly empty LD_PRELOAD before calling our
test binaries.
Simon Ruderich [Tue, 11 Jun 2019 09:05:08 +0000 (11:05 +0200)]
Check size limits and abort if they are violated
Also document them in the README and add tests.
Simon Ruderich [Tue, 11 Jun 2019 08:56:44 +0000 (10:56 +0200)]
nsscash: handle errors in SerializePasswd(), SerializeGroup()
No such errors are defined yet.
Simon Ruderich [Tue, 11 Jun 2019 08:53:43 +0000 (10:53 +0200)]
nsscash: support longer lines in passwd/group files
bufio.Scanner has an internal limit on the maximum token (= line)
length. We want to support larger lines in the future.
Simon Ruderich [Tue, 11 Jun 2019 07:48:05 +0000 (09:48 +0200)]
nss: tests: sort included headers
Simon Ruderich [Mon, 10 Jun 2019 21:53:49 +0000 (23:53 +0200)]
nss: Makefile: build libcash_test.so in tests/
Prevents accidentally copying the test library instead of the actual NSS
library.
Simon Ruderich [Mon, 10 Jun 2019 21:40:00 +0000 (23:40 +0200)]
README: document practices and tested systems
Simon Ruderich [Mon, 10 Jun 2019 21:36:05 +0000 (23:36 +0200)]
nsscash: improve comments
Simon Ruderich [Mon, 10 Jun 2019 21:34:45 +0000 (23:34 +0200)]
nsscash: add alignBufferTo() helper
Simon Ruderich [Mon, 10 Jun 2019 21:00:25 +0000 (23:00 +0200)]
nss: improve comments
Simon Ruderich [Mon, 10 Jun 2019 20:59:08 +0000 (22:59 +0200)]
nss: gr/pw: re-used variable
Now that the key argument is const we can use this to reduces code
duplication.
Simon Ruderich [Mon, 10 Jun 2019 20:57:40 +0000 (22:57 +0200)]
nss: gr/pw: use key->name for NULL check
This is consistent with search.c's bsearch_callback() which also checks
key->name first.
Simon Ruderich [Mon, 10 Jun 2019 20:56:17 +0000 (22:56 +0200)]
nss: gr/pw: make data const
We cannot modify it anyway.
Simon Ruderich [Mon, 10 Jun 2019 20:48:39 +0000 (22:48 +0200)]
nss: search: make search_key argument const
Simon Ruderich [Mon, 10 Jun 2019 20:41:48 +0000 (22:41 +0200)]
nss: search.h: re-order struct file members
Simon Ruderich [Mon, 10 Jun 2019 20:27:48 +0000 (22:27 +0200)]
nss: file.h: re-order struct file members
Simon Ruderich [Mon, 10 Jun 2019 20:26:00 +0000 (22:26 +0200)]
nss: merge cash.h into file.h
file.h is a more logical place anyway and this gets rid of a useless
header file.
Simon Ruderich [Mon, 10 Jun 2019 20:14:50 +0000 (22:14 +0200)]
nss: simplify initialization of struct file in map_file()
It's not necessary to initialize ->fd at the beginning of map_file() as
the call to open(2) will overwrite it anyway.
Also adapt a check for a valid file descriptor. Although POSIX states
that open(2) returns -1 on error, there is no reason to hard-code this
constant. Instead, check for any negative value.
Simon Ruderich [Sun, 9 Jun 2019 12:25:52 +0000 (14:25 +0200)]
README: minor updates and fixes
Simon Ruderich [Sun, 9 Jun 2019 12:11:31 +0000 (14:11 +0200)]
nss: Makefile: fix typo in LD_PRELOAD variable name
Simon Ruderich [Sat, 8 Jun 2019 14:26:17 +0000 (16:26 +0200)]
README: add requirements and usage instructions
Simon Ruderich [Sat, 8 Jun 2019 13:57:23 +0000 (15:57 +0200)]
Makefile: run all and clean in nss/ as well
This way a single `make all` builds the whole project.
Simon Ruderich [Sat, 8 Jun 2019 13:55:58 +0000 (15:55 +0200)]
Makefile: add test target
Simon Ruderich [Sat, 8 Jun 2019 13:54:35 +0000 (15:54 +0200)]
nsscache: add comment
Simon Ruderich [Sat, 8 Jun 2019 13:51:44 +0000 (15:51 +0200)]
nss: tests: fix typo in comment
Simon Ruderich [Sat, 8 Jun 2019 13:50:34 +0000 (15:50 +0200)]
nsscash: use WriteByte() instead of Write() with cast
Less to type and easier to read.
The old solution used '0' to pad instead 0. This isn't an issue as these
bytes are not used. But fix it as well.
Simon Ruderich [Sat, 8 Jun 2019 13:49:55 +0000 (15:49 +0200)]
nsscash: improve index sanity check
This ensures that the index has the proper size and is not missing any
entries.
Simon Ruderich [Sat, 8 Jun 2019 13:49:33 +0000 (15:49 +0200)]
Add support for group files
Simon Ruderich [Sat, 8 Jun 2019 12:34:52 +0000 (14:34 +0200)]
nsscash: go fmt
Simon Ruderich [Sat, 8 Jun 2019 12:33:58 +0000 (14:33 +0200)]
nsscash: add support to convert plain files
For plain files this is just a copy. But it prepares for conversion of
other types in the future.
Simon Ruderich [Sat, 8 Jun 2019 12:06:55 +0000 (14:06 +0200)]
nss: add tests
These also test large parts of the Go code.
Simon Ruderich [Sat, 8 Jun 2019 11:17:36 +0000 (13:17 +0200)]
nss: move NSS function definitions to separate header
Documents which functions we provide and will be used for tests in the
future.
Simon Ruderich [Sat, 8 Jun 2019 11:06:04 +0000 (13:06 +0200)]
nss: Makefile: inline library flags
We want to build programs in the future which will conflict with -shared
-fPIC.
Simon Ruderich [Sat, 8 Jun 2019 10:51:32 +0000 (12:51 +0200)]
nsscash: add "convert" sub-command
Permits manually converting a file without having to fetch it from a
webserver.
Simon Ruderich [Sat, 8 Jun 2019 10:41:01 +0000 (12:41 +0200)]
nsscash: remove a few empty lines
Simon Ruderich [Sat, 8 Jun 2019 10:40:35 +0000 (12:40 +0200)]
nsscash: go fmt
Simon Ruderich [Sat, 8 Jun 2019 10:39:55 +0000 (12:39 +0200)]
nsscash: add "fetch" sub-command for the default action
In preparation for more sub-commands in the future.
Simon Ruderich [Sat, 8 Jun 2019 10:24:27 +0000 (12:24 +0200)]
First working version
Supports only /etc/passwd at the moment.
Simon Ruderich [Sat, 8 Jun 2019 08:28:39 +0000 (10:28 +0200)]
Initial commit