Fossil SCM
Fix a bug in the skin edit pages that can result in an infinite loop.
Commit
995e184cc14fa435f125237ff977f54c5ec740823b0875a91375d494ca259d90
Parent
afb1e5f6cfecc8b…
1 file changed
+4
-2
+4
-2
| --- src/skins.c | ||
| +++ src/skins.c | ||
| @@ -676,15 +676,17 @@ | ||
| 676 | 676 | if( fossil_strcmp(zLabel, "current")==0 ){ |
| 677 | 677 | zResult = db_get(zFile, ""); |
| 678 | 678 | }else if( sqlite3_strglob("draft[1-9]", zLabel)==0 ){ |
| 679 | 679 | zResult = db_get_mprintf("", "%s-%s", zLabel, zFile); |
| 680 | 680 | }else{ |
| 681 | - while( 1 ){ | |
| 681 | + int i; | |
| 682 | + for(i=0; i<2; i++){ | |
| 682 | 683 | char *zKey = mprintf("skins/%s/%s.txt", zLabel, zFile); |
| 683 | 684 | zResult = builtin_text(zKey); |
| 684 | 685 | fossil_free(zKey); |
| 685 | - if( zResult!=0 || fossil_strcmp(zLabel,"default")==0 ) break; | |
| 686 | + if( zResult!=0 ) break; | |
| 687 | + zLabel = "default"; | |
| 686 | 688 | } |
| 687 | 689 | } |
| 688 | 690 | return zResult; |
| 689 | 691 | } |
| 690 | 692 | |
| 691 | 693 |
| --- src/skins.c | |
| +++ src/skins.c | |
| @@ -676,15 +676,17 @@ | |
| 676 | if( fossil_strcmp(zLabel, "current")==0 ){ |
| 677 | zResult = db_get(zFile, ""); |
| 678 | }else if( sqlite3_strglob("draft[1-9]", zLabel)==0 ){ |
| 679 | zResult = db_get_mprintf("", "%s-%s", zLabel, zFile); |
| 680 | }else{ |
| 681 | while( 1 ){ |
| 682 | char *zKey = mprintf("skins/%s/%s.txt", zLabel, zFile); |
| 683 | zResult = builtin_text(zKey); |
| 684 | fossil_free(zKey); |
| 685 | if( zResult!=0 || fossil_strcmp(zLabel,"default")==0 ) break; |
| 686 | } |
| 687 | } |
| 688 | return zResult; |
| 689 | } |
| 690 | |
| 691 |
| --- src/skins.c | |
| +++ src/skins.c | |
| @@ -676,15 +676,17 @@ | |
| 676 | if( fossil_strcmp(zLabel, "current")==0 ){ |
| 677 | zResult = db_get(zFile, ""); |
| 678 | }else if( sqlite3_strglob("draft[1-9]", zLabel)==0 ){ |
| 679 | zResult = db_get_mprintf("", "%s-%s", zLabel, zFile); |
| 680 | }else{ |
| 681 | int i; |
| 682 | for(i=0; i<2; i++){ |
| 683 | char *zKey = mprintf("skins/%s/%s.txt", zLabel, zFile); |
| 684 | zResult = builtin_text(zKey); |
| 685 | fossil_free(zKey); |
| 686 | if( zResult!=0 ) break; |
| 687 | zLabel = "default"; |
| 688 | } |
| 689 | } |
| 690 | return zResult; |
| 691 | } |
| 692 | |
| 693 |