This commit introduces the following, cosmetic changes:
- All callers of 'ldbGenericReplace' specify a non-nil 'deleteFn' argument.
Thus, remove the checks for 'deleteFn' being nil.
- Before this change, 'ldbInsert' took a 'FileInfo' argument and a
separate argument for the file name, but all callers passed in the
value of FileInfo.Name as the file name. Simplify this, by not not
passing in the file name as a separate argument. This makes the
function signature of 'ldbInsert' more similar to 'ldbUpdate'.
- doc fixes
When extracting a folder name from the byte slices used as database
keys, bytes.IndexByte() is used to find and remove trailing 0 bytes.
In case the folder name is 64 bytes long, bytes.IndexByte() returns
-1. Before this change, syncthing crashed in this case with an
out-of-bounds slice access.
The commit fixes the problem and also introduces a test case which
checks for the presence of the bug.