Skip to content

Commit e939282

Browse files
committed
---
yaml --- r: 13220 b: refs/heads/master c: 9b81dbf h: refs/heads/master v: v3
1 parent 26bd1a6 commit e939282

File tree

2 files changed

+19
-7
lines changed

2 files changed

+19
-7
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
refs/heads/master: 8fbd5ac0492235f98262182f4dd98c5734ffdc61
2+
refs/heads/master: 9b81dbfef3322ea2c05fe92a2b7cc6bbecbc33fe
33
refs/heads/snap-stage1: e33de59e47c5076a89eadeb38f4934f58a3618a6
44
refs/heads/snap-stage3: 4a81779abd786ff22d71434c6d9a5917ea4cdfff
55
refs/heads/try: 2898dcc5d97da9427ac367542382b6239d9c0bbf

trunk/src/cargo/cargo.rs

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,18 @@ fn is_uuid(id: str) -> bool {
107107
let parts = str::split_str(id, "-");
108108
if vec::len(parts) == 5u {
109109
let mut correct = 0u;
110-
vec::iteri(parts) { |i, part|
110+
for vec::eachi(parts) { |i, part|
111+
112+
if !part.all(is_hex_digit) {
113+
ret false;
114+
}
115+
116+
fn is_hex_digit(ch: char) -> bool {
117+
('0' <= ch && ch <= '9') ||
118+
('a' <= ch && ch <= 'f') ||
119+
('A' <= ch && ch <= 'F')
120+
}
121+
111122
alt i {
112123
0u {
113124
if str::len(part) == 8u {
@@ -131,17 +142,18 @@ fn is_uuid(id: str) -> bool {
131142
ret true;
132143
}
133144
}
134-
false
145+
ret false;
135146
}
136147

137148
#[test]
138149
fn test_is_uuid() {
139-
assert is_uuid("aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa");
140-
assert is_uuid("AAAAAAAA-AAAA-AAAA-AAAA-AAAAAAAAAAAA");
141-
assert is_uuid("0AAAAAAA-AAAA-AAAA-AAAA-AAAAAAAAAAA0");
142-
assert !is_uuid("aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaa");
150+
assert is_uuid("aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaafAF09");
143151
assert !is_uuid("aaaaaaaa-aaaa-aaaa-aaaaa-aaaaaaaaaaaa");
144152
assert !is_uuid("");
153+
assert !is_uuid("aaaaaaaa-aaa -aaaa-aaaa-aaaaaaaaaaaa");
154+
assert !is_uuid("aaaaaaaa-aaa!-aaaa-aaaa-aaaaaaaaaaaa");
155+
assert !is_uuid("aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa-a");
156+
assert !is_uuid("aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaป");
145157
}
146158

147159
// FIXME: implement URI/URL parsing so we don't have to resort to weak checks

0 commit comments

Comments
 (0)