##// END OF EJS Templates
dispatch: protect against malicious 'hg serve --stdio' invocations (sec)...
dispatch: protect against malicious 'hg serve --stdio' invocations (sec) Some shared-ssh installations assume that 'hg serve --stdio' is a safe command to run for minimally trusted users. Unfortunately, the messy implementation of argument parsing here meant that trying to access a repo named '--debugger' would give the user a pdb prompt, thereby sidestepping any hoped-for sandboxing. Serving repositories over HTTP(S) is unaffected. We're not currently hardening any subcommands other than 'serve'. If your service exposes other commands to users with arbitrary repository names, it is imperative that you defend against repository names of '--debugger' and anything starting with '--config'. The read-only mode of hg-ssh stopped working because it provided its hook configuration to "hg serve --stdio" via --config parameter. This is banned for security reasons now. This patch switches it to directly call ui.setconfig(). If your custom hosting infrastructure relies on passing --config to "hg serve --stdio", you'll need to find a different way to get that configuration into Mercurial, either by using ui.setconfig() as hg-ssh does in this patch, or by placing an hgrc file someplace where Mercurial will read it. mitrandir@fb.com provided some extra fixes for the dispatch code and for hg-ssh in places that I overlooked.

File last commit:

r29974:7109d5dd default
r32050:77eaf953 4.1.3 stable
Show More
test-strict.t
48 lines | 1.5 KiB | text/troff | Tads3Lexer
Nicolas Dumazet
tests: unify test-strict
r12097 $ hg init
$ echo a > a
$ hg ci -Ama
adding a
$ hg an a
0: a
Yuya Nishihara
commands: parse ui.strict config item as bool
r16591 $ hg --config ui.strict=False an a
0: a
Nicolas Dumazet
tests: unify test-strict
r12097 $ echo "[ui]" >> $HGRCPATH
$ echo "strict=True" >> $HGRCPATH
$ hg an a
hg: unknown command 'an'
Mercurial Distributed SCM
basic commands:
Olav Reinert
help: format command and option list help using RST...
r16853 add add the specified files on the next commit
annotate show changeset information by line for each file
clone make a copy of an existing repository
commit commit the specified files or all outstanding changes
diff diff repository (or selected files)
export dump the header and diffs for one or more changesets
forget forget the specified files on the next commit
init create a new repository in the given directory
log show revision history of entire repository or files
anatoly techtonik
merge: be precise about what merged into what in short desc
r23400 merge merge another revision into working directory
Olav Reinert
help: format command and option list help using RST...
r16853 pull pull changes from the specified source
push push changes to the specified destination
remove remove the specified files on the next commit
serve start stand-alone webserver
status show changed files in the working directory
summary summarize working directory state
update update working directory (or switch revisions)
Nicolas Dumazet
tests: unify test-strict
r12097
timeless
help: use single quotes in use warning
r29974 (use 'hg help' for the full list of commands or 'hg -v' for details)
Matt Mackall
tests: add exit codes to unified tests
r12316 [255]
Nicolas Dumazet
tests: unify test-strict
r12097 $ hg annotate a
0: a
should succeed - up is an alias, not an abbreviation
$ hg up
0 files updated, 0 files merged, 0 files removed, 0 files unresolved