Commit Graph

29450 Commits

Author SHA1 Message Date
Jōshin
4cef7dc38b
bounds-check against sk=1
+sign:schnorr crashes on `=(0 sk)`, so the bounds checking code is not
exercised for sk=0. It also crashes on `(gte sk n.domain.c)`, which is
redundant with the size check on sk, so we remove that.
2022-02-03 13:21:21 -06:00
Jōshin
f07f759253
zuse: style cleanup, use +rep/+end 2022-02-03 12:54:27 -06:00
Liam Fitzgerald
f3da5488ce Merge remote-tracking branch 'origin/next/groups' into lf/no-perms-rejoin 2022-02-03 11:12:43 -06:00
Jōshin
b277fd5e84
pill: solid, brass 2022-02-02 21:06:23 -06:00
Jōshin
4acfaba410
pill: ivory from jo/secp-arvo
arvo from commit:

    822eb6ea08
2022-02-02 20:48:15 -06:00
Jōshin
822eb6ea08
Merge branch 'next/arvo' into jo/secp-arvo 2022-02-02 20:34:11 -06:00
Jōshin
08ca0cf0c7
jets: mark schnorr jets non-perfect
also marks %sosi as non-total, since it conceivably could punt.
2022-02-02 20:32:46 -06:00
Jōshin
8d3f19aba9
Merge branch 'next/vere' into jo/secp-c3 2022-02-02 17:57:51 -06:00
Jōshin
74b71f35cc
Merge branch 'next/vere' into jo/unix-sane 2022-02-02 12:27:25 -06:00
fang
0998228a7e
Merge pull request #5428 from urbit/m/--vere-args
vere: support long-form command line arguments
2022-02-02 19:26:35 +01:00
fang
5588953d84
Merge branch 'next/vere' into m/--vere-args 2022-02-02 19:26:17 +01:00
Jōshin
bd67814a95
Merge branch 'next/vere' into jo/khan-c3 2022-02-02 12:24:55 -06:00
Jōshin
f34f6a91e9
conn: comment format 2022-02-02 12:24:36 -06:00
Jōshin
997544eb11
conn: describe +fyrd interface to %khan 2022-02-02 12:24:36 -06:00
Joe Bryan
1736bae519
Merge pull request #5572 from urbit/jb/dirty-loom
u3: fix snapshot corruption by preemptively dirtying the loom
2022-02-02 13:01:52 -05:00
Jōshin
7fcdf6ef54
noun: go ahead and enforce that invariant (#5579)
* noun: go ahead and enforce that invariant

* mingw: sysconf compat wrapper
2022-02-02 08:06:05 -06:00
Joe Bryan
60fc5c1389 u3: refines snapshot system docs 2022-02-01 20:11:40 -05:00
Jōshin
1183634501
unix: knot mapping that is not a valid @ta
'~.' was a pun with the @ta encoding, which could cause people to get
confused about how the mapping actually worked.

I had previusly wanted the escape sequence to be a valid @ta, since I
had wanted to check that path components were (sane %ta) prior to doing
$knot conversion. However @joemfb mentioned that it was desirable to
have it not be a valid @ta so that if someone messed up the encoding in
the future, the paths would be detectably wrong.

This necessitates calling _unix_knot_to_string on unsanitized input,
which means we can no longer assume that it won't contain non-(sane %ta)
characters, which means we can no longer assert that '\\' is not in the
string on Linux.

Also added a seemingly forgotten null byte to _unix_knot_to_string.
2022-02-01 12:56:50 -06:00
Jōshin
7b6e89fc15
unix: comment with suggestions for future 2022-01-31 23:07:13 -06:00
Jōshin
4a74b9b13f
unix: fix regression in _unix_scan_mount_point
We previously checked for '#' at strlen(out_u->d_name) - 1 here. So just
go ahead and do (sane %ta) on the whole out_u->d_name.
2022-01-31 20:52:42 -06:00
Jōshin
46a1139e70
main: repath cleanup 2022-01-31 17:26:07 -06:00
Jōshin
5591752f9c
main: support files in cwd 2022-01-31 17:02:18 -06:00
Jōshin
0375646a93
unix: cane before root removal 2022-01-31 16:34:09 -06:00
Liam Fitzgerald
b14dc76992 interface: refine joining error cases 2022-01-31 16:21:27 -06:00
Liam Fitzgerald
9540afecad group-view: fix errored rollback 2022-01-31 16:20:57 -06:00
Jōshin
6c5d7133f1
unix: fix compile warning 2022-01-31 14:25:22 -06:00
Jōshin
eaf47d95c5
unix: test cases 2022-01-31 14:23:39 -06:00
Jōshin
3f1c526d2e
main: repath scry path 2022-01-31 14:19:27 -06:00
Jōshin
8191955eff
unix: reorder checks 2022-01-31 14:18:22 -06:00
Jōshin
c83d9b9c1e
unix: hard-code %put base directory 2022-01-31 14:03:34 -06:00
Jōshin
2b05fa2ebe
unix: use $ for types 2022-01-31 13:53:22 -06:00
Jōshin
9172b3dfe8
unix: c3_ 2022-01-31 13:52:44 -06:00
Jōshin
6b5361d7df
unix: code review feedback 2022-01-31 13:49:51 -06:00
Jōshin
ca1ed3d7a1
vere: remove 'new' from header comments
'New' is relative; some of these subsystems were 'new' in 2015.
2022-01-31 13:21:50 -06:00
Jōshin
b8277be5b2
vere: remove walk, move save to unix 2022-01-31 13:19:32 -06:00
Jōshin
7fc9db8c9a
unix: reformat comments 2022-01-31 12:28:45 -06:00
Jōshin
443315f401
vere: rename u3_unix_{safe,cane} 2022-01-31 12:25:42 -06:00
Jōshin
60f1a44910
unix: remove extra layer of conditional 2022-01-31 11:14:54 -06:00
Jōshin
0d9264ea1c
unix: don't require that string is non-empty
Fixes an assert failure if you try to commit a file named `~.`.
2022-01-31 11:13:57 -06:00
Jōshin
2a5baa9e3f
main: simplify _main_repath 2022-01-31 10:59:23 -06:00
Jōshin
b5a49a159f
unix: use (sane %ta) out of arvo 2022-01-31 10:43:56 -06:00
Jōshin
19002c72dd
compat: mingw realpath 2022-01-31 10:24:11 -06:00
Jōshin
c041080729
unix: bugfixes
- Don't test for '\\' in u3_unix_safe. Doing otherwise was crashing vere
  when unmounting a mountpoint that had come to contain a file with '\\'
  in its path. This might mean you can do bad things on Windows if other
  checks fail.

- Ignore any files whose names do not pass `(sane %ta)` when scanning
  directories. (This reimplements `(sane %ta)` in C. Perhaps it should
  instead call `(sane %ta)`.)

- Use '~.' rather than '~' for the escape. We ignore files that end in
  '~', probably for vim backup-file reasons.

- Add a _unix_string_to_knot missed in the prior conversion.
2022-01-31 10:00:35 -06:00
Jōshin
00f7407a5e
unix: escape overloaded paths
unix cannot represent the file with empty name, and it has special
mappings for '.' and '..'. as these three are all valid arvo `+knot`s,
we need to escape them if we come across them.

the method we use to escape is: if we encounter any of those three
`+knot`s, or any `+knot` starting with '~', we prepend its filename with
a '~'. and when going from filename to `+knot`, we do the reverse; i.e.
we ignore a '~' if it is the first character of a filename.

the current implementation just crashes if it encounters a `+knot`
containing '/' or '\\', neither of which are valid under the current
implementation of `@ta` (which only accepts numbers, lowercase, '-',
'~', '.', and '_'.)

it also crashes if it encounters a file containing '\\'. something else
should happen here; most likely vere should just ignore the file.
2022-01-31 10:00:35 -06:00
fang
e33af60eca
Merge pull request #5570 from urbit/fix-rekey-for-multikey
helm: fix |rekey to work with multikey files
2022-01-31 16:57:28 +01:00
Jōshin
d4b4504ae4
vere: move lockfile from unix to disk 2022-01-30 19:26:45 -06:00
Jōshin
a4b40d104c
noun: noop, C 'types' being what they are... 2022-01-30 13:09:20 -06:00
Jōshin
0248f57f0b
unix: comment format 2022-01-29 23:24:12 -06:00
Jōshin
3d36582fda
unix: whitespace cleanup 2022-01-29 23:24:12 -06:00
Jōshin
c8f8ced249
main: canonicalize paths from command line 2022-01-29 23:24:11 -06:00