##// END OF EJS Templates
hgweb: fix trust of templates path (BC)...
hgweb: fix trust of templates path (BC) Long ago we disabled trust of the templates path with a comment describing the (insecure) behavior before the change. At some later refactor, the code was apparently changed back to match the comment, unaware that the intent of the comment was to describe the behavior to avoid. This change disables the trust and updates the comment to explicitly say not only what the old problem was, but also that it was in fact a problem and the action taken to prevent it. Impact: prior to this change, if you had a UNIX-based hgweb server where users can write hgrc files, those users could potentially read any file readable by the web server. This is marked as a backwards compatibility issue because people may have configured templates without proper trust settings. Issue spotted by Greg Szorc.

File last commit:

r25514:9b1a8ce1 default
r26120:1a45e49a 3.5.1 stable
Show More
map-cmdline.default
75 lines | 2.8 KiB | text/plain | TextLexer
Jordi Gutiérrez Hermoso
log: rewrite default template to use labels (issue2866)...
r22766 # Base templates. Due to name clashes with existing keywords, we have
# to replace some keywords with 'lkeyword', for 'labelled keyword'
changeset = '{cset}{branches}{bookmarks}{tags}{parents}{user}{ldate}{summary}\n'
Yuya Nishihara
templates: fix "log -q" output of default style...
r24304 changeset_quiet = '{lnode}'
Jordi Gutiérrez Hermoso
log: rewrite default template to use labels (issue2866)...
r22766 changeset_verbose = '{cset}{branches}{bookmarks}{tags}{parents}{user}{ldate}{lfiles}{lfile_copies_switch}{description}\n'
changeset_debug = '{fullcset}{branches}{bookmarks}{tags}{lphase}{parents}{manifest}{user}{ldate}{lfile_mods}{lfile_adds}{lfile_dels}{lfile_copies_switch}{extras}{description}\n'
# File templates
lfiles = '{if(files,
label("ui.note log.files",
"files: {files}\n"))}'
lfile_mods = '{if(file_mods,
label("ui.debug log.files",
"files: {file_mods}\n"))}'
lfile_adds = '{if(file_adds,
label("ui.debug log.files",
"files+: {file_adds}\n"))}'
lfile_dels = '{if(file_dels,
label("ui.debug log.files",
"files-: {file_dels}\n"))}'
lfile_copies_switch = '{if(file_copies_switch,
label("ui.note log.copies",
"copies: {file_copies_switch
% ' {name} ({source})'}\n"))}'
# General templates
cset = '{label("log.changeset changeset.{phase}",
"changeset: {rev}:{node|short}")}\n'
lphase = '{label("log.phase",
"phase: {phase}")}\n'
fullcset = '{label("log.changeset changeset.{phase}",
"changeset: {rev}:{node}")}\n'
parent = '{label("log.parent changeset.{phase}",
"parent: {rev}:{node|formatnode}")}\n'
Yuya Nishihara
templates: fix "log -q" output of default style...
r24304 lnode = '{label("log.node",
Jordi Gutiérrez Hermoso
log: rewrite default template to use labels (issue2866)...
r22766 "{rev}:{node|short}")}\n'
manifest = '{label("ui.debug log.manifest",
"manifest: {rev}:{node}")}\n'
branch = '{label("log.branch",
"branch: {branch}")}\n'
tag = '{label("log.tag",
"tag: {tag}")}\n'
bookmark = '{label("log.bookmark",
"bookmark: {bookmark}")}\n'
user = '{label("log.user",
"user: {author}")}\n'
Yuya Nishihara
templates-default: do not show description or summary if empty...
r24637 summary = '{if(desc|strip, "{label('log.summary',
'summary: {desc|firstline}')}\n")}'
Jordi Gutiérrez Hermoso
log: rewrite default template to use labels (issue2866)...
r22766
ldate = '{label("log.date",
"date: {date|date}")}\n'
extra = '{label("ui.debug log.extra",
"extra: {key}={value|stringescape}")}\n'
Yuya Nishihara
templates-default: do not show description or summary if empty...
r24637 description = '{if(desc|strip, "{label('ui.note log.description',
'description:')}
{label('ui.note log.description',
'{desc|strip}')}\n\n")}'
Matt Mackall
templates: add a default template style for status...
r25514
status = '{status} {path}\n{if(copy, " {copy}\n")}'