Fossil SCM
Fix the object ID decoding on the /info page. Ticket [a5403e6eee].
Commit
5eea3db6c19f5185409adf301e129dbefa08c998
Parent
726a13d29689f4b…
1 file changed
+5
-4
+5
-4
| --- src/info.c | ||
| +++ src/info.c | ||
| @@ -1060,19 +1060,20 @@ | ||
| 1060 | 1060 | Blob uuid; |
| 1061 | 1061 | int rid; |
| 1062 | 1062 | |
| 1063 | 1063 | zName = P("name"); |
| 1064 | 1064 | if( zName==0 ) fossil_redirect_home(); |
| 1065 | + if( validate16(zName, strlen(zName)) | |
| 1066 | + && db_exists("SELECT 1 FROM ticket WHERE tkt_uuid LIKE '%q%%'", zName) ){ | |
| 1067 | + tktview_page(); | |
| 1068 | + return; | |
| 1069 | + } | |
| 1065 | 1070 | blob_set(&uuid, zName); |
| 1066 | 1071 | if( name_to_uuid(&uuid, 1) ){ |
| 1067 | 1072 | fossil_redirect_home(); |
| 1068 | 1073 | } |
| 1069 | 1074 | zName = blob_str(&uuid); |
| 1070 | - if( db_exists("SELECT 1 FROM ticket WHERE tkt_uuid='%s'", zName) ){ | |
| 1071 | - tktview_page(); | |
| 1072 | - return; | |
| 1073 | - } | |
| 1074 | 1075 | rid = db_int(0, "SELECT rid FROM blob WHERE uuid='%s'", zName); |
| 1075 | 1076 | if( rid==0 ){ |
| 1076 | 1077 | style_header("Broken Link"); |
| 1077 | 1078 | @ <p>No such object: %h(zName)</p> |
| 1078 | 1079 | style_footer(); |
| 1079 | 1080 |
| --- src/info.c | |
| +++ src/info.c | |
| @@ -1060,19 +1060,20 @@ | |
| 1060 | Blob uuid; |
| 1061 | int rid; |
| 1062 | |
| 1063 | zName = P("name"); |
| 1064 | if( zName==0 ) fossil_redirect_home(); |
| 1065 | blob_set(&uuid, zName); |
| 1066 | if( name_to_uuid(&uuid, 1) ){ |
| 1067 | fossil_redirect_home(); |
| 1068 | } |
| 1069 | zName = blob_str(&uuid); |
| 1070 | if( db_exists("SELECT 1 FROM ticket WHERE tkt_uuid='%s'", zName) ){ |
| 1071 | tktview_page(); |
| 1072 | return; |
| 1073 | } |
| 1074 | rid = db_int(0, "SELECT rid FROM blob WHERE uuid='%s'", zName); |
| 1075 | if( rid==0 ){ |
| 1076 | style_header("Broken Link"); |
| 1077 | @ <p>No such object: %h(zName)</p> |
| 1078 | style_footer(); |
| 1079 |
| --- src/info.c | |
| +++ src/info.c | |
| @@ -1060,19 +1060,20 @@ | |
| 1060 | Blob uuid; |
| 1061 | int rid; |
| 1062 | |
| 1063 | zName = P("name"); |
| 1064 | if( zName==0 ) fossil_redirect_home(); |
| 1065 | if( validate16(zName, strlen(zName)) |
| 1066 | && db_exists("SELECT 1 FROM ticket WHERE tkt_uuid LIKE '%q%%'", zName) ){ |
| 1067 | tktview_page(); |
| 1068 | return; |
| 1069 | } |
| 1070 | blob_set(&uuid, zName); |
| 1071 | if( name_to_uuid(&uuid, 1) ){ |
| 1072 | fossil_redirect_home(); |
| 1073 | } |
| 1074 | zName = blob_str(&uuid); |
| 1075 | rid = db_int(0, "SELECT rid FROM blob WHERE uuid='%s'", zName); |
| 1076 | if( rid==0 ){ |
| 1077 | style_header("Broken Link"); |
| 1078 | @ <p>No such object: %h(zName)</p> |
| 1079 | style_footer(); |
| 1080 |