Mercurial > public > mercurial-scm > hg
comparison mercurial/commands.py @ 1835:bdfb524d728a
Validate paths before reading or writing files in repository or working dir.
Fixes security relevant issue134.
author | Thomas Arendsen Hein <thomas@intevation.de> |
---|---|
date | Sat, 04 Mar 2006 19:01:45 +0100 |
parents | fc959d6ffb13 |
children | 6f67a4c93493 876e4e6ad82b |
comparison
equal
deleted
inserted
replaced
1834:24881eaebee3 | 1835:bdfb524d728a |
---|---|
1012 errs = 1 | 1012 errs = 1 |
1013 return errs | 1013 return errs |
1014 | 1014 |
1015 def debugancestor(ui, index, rev1, rev2): | 1015 def debugancestor(ui, index, rev1, rev2): |
1016 """find the ancestor revision of two revisions in a given index""" | 1016 """find the ancestor revision of two revisions in a given index""" |
1017 r = revlog.revlog(util.opener(os.getcwd()), index, "") | 1017 r = revlog.revlog(util.opener(os.getcwd(), audit=False), index, "") |
1018 a = r.ancestor(r.lookup(rev1), r.lookup(rev2)) | 1018 a = r.ancestor(r.lookup(rev1), r.lookup(rev2)) |
1019 ui.write("%d:%s\n" % (r.rev(a), hex(a))) | 1019 ui.write("%d:%s\n" % (r.rev(a), hex(a))) |
1020 | 1020 |
1021 def debugrebuildstate(ui, repo, rev=None): | 1021 def debugrebuildstate(ui, repo, rev=None): |
1022 """rebuild the dirstate as it would look like for the given revision""" | 1022 """rebuild the dirstate as it would look like for the given revision""" |
1098 for f in repo.dirstate.copies: | 1098 for f in repo.dirstate.copies: |
1099 ui.write(_("copy: %s -> %s\n") % (repo.dirstate.copies[f], f)) | 1099 ui.write(_("copy: %s -> %s\n") % (repo.dirstate.copies[f], f)) |
1100 | 1100 |
1101 def debugdata(ui, file_, rev): | 1101 def debugdata(ui, file_, rev): |
1102 """dump the contents of an data file revision""" | 1102 """dump the contents of an data file revision""" |
1103 r = revlog.revlog(util.opener(os.getcwd()), file_[:-2] + ".i", file_) | 1103 r = revlog.revlog(util.opener(os.getcwd(), audit=False), |
1104 file_[:-2] + ".i", file_) | |
1104 try: | 1105 try: |
1105 ui.write(r.revision(r.lookup(rev))) | 1106 ui.write(r.revision(r.lookup(rev))) |
1106 except KeyError: | 1107 except KeyError: |
1107 raise util.Abort(_('invalid revision identifier %s'), rev) | 1108 raise util.Abort(_('invalid revision identifier %s'), rev) |
1108 | 1109 |
1109 def debugindex(ui, file_): | 1110 def debugindex(ui, file_): |
1110 """dump the contents of an index file""" | 1111 """dump the contents of an index file""" |
1111 r = revlog.revlog(util.opener(os.getcwd()), file_, "") | 1112 r = revlog.revlog(util.opener(os.getcwd(), audit=False), file_, "") |
1112 ui.write(" rev offset length base linkrev" + | 1113 ui.write(" rev offset length base linkrev" + |
1113 " nodeid p1 p2\n") | 1114 " nodeid p1 p2\n") |
1114 for i in range(r.count()): | 1115 for i in range(r.count()): |
1115 e = r.index[i] | 1116 e = r.index[i] |
1116 ui.write("% 6d % 9d % 7d % 6d % 7d %s %s %s\n" % ( | 1117 ui.write("% 6d % 9d % 7d % 6d % 7d %s %s %s\n" % ( |
1117 i, e[0], e[1], e[2], e[3], | 1118 i, e[0], e[1], e[2], e[3], |
1118 short(e[6]), short(e[4]), short(e[5]))) | 1119 short(e[6]), short(e[4]), short(e[5]))) |
1119 | 1120 |
1120 def debugindexdot(ui, file_): | 1121 def debugindexdot(ui, file_): |
1121 """dump an index DAG as a .dot file""" | 1122 """dump an index DAG as a .dot file""" |
1122 r = revlog.revlog(util.opener(os.getcwd()), file_, "") | 1123 r = revlog.revlog(util.opener(os.getcwd(), audit=False), file_, "") |
1123 ui.write("digraph G {\n") | 1124 ui.write("digraph G {\n") |
1124 for i in range(r.count()): | 1125 for i in range(r.count()): |
1125 e = r.index[i] | 1126 e = r.index[i] |
1126 ui.write("\t%d -> %d\n" % (r.rev(e[4]), i)) | 1127 ui.write("\t%d -> %d\n" % (r.rev(e[4]), i)) |
1127 if e[5] != nullid: | 1128 if e[5] != nullid: |