Fossil SCM
Added a missing db_finalize() call in /json/branch/list which led to a downstream segfault via an invalid/destructed Stmt handle.
Commit
e45789ee8319f9d30dac4a10d4fee5dbaee9bcb0c0ee6e5b0c107dbd2c126416
Parent
fc977f14b123e76…
1 file changed
+2
-1
+2
-1
| --- src/json_branch.c | ||
| +++ src/json_branch.c | ||
| @@ -68,11 +68,11 @@ | ||
| 68 | 68 | cson_value * listV; |
| 69 | 69 | cson_array * list; |
| 70 | 70 | char const * range = NULL; |
| 71 | 71 | int branchListFlags = BRL_OPEN_ONLY; |
| 72 | 72 | char * sawConversionError = NULL; |
| 73 | - Stmt q; | |
| 73 | + Stmt q = empty_Stmt; | |
| 74 | 74 | if( !g.perm.Read ){ |
| 75 | 75 | json_set_err(FSL_JSON_E_DENIED, |
| 76 | 76 | "Requires 'o' permissions."); |
| 77 | 77 | return NULL; |
| 78 | 78 | } |
| @@ -143,10 +143,11 @@ | ||
| 143 | 143 | } |
| 144 | 144 | if( sawConversionError ){ |
| 145 | 145 | json_warn(FSL_JSON_W_COL_TO_JSON_FAILED,"%s",sawConversionError); |
| 146 | 146 | free(sawConversionError); |
| 147 | 147 | } |
| 148 | + db_finalize(&q); | |
| 148 | 149 | return payV; |
| 149 | 150 | } |
| 150 | 151 | |
| 151 | 152 | /* |
| 152 | 153 | ** Parameters for the create-branch operation. |
| 153 | 154 |
| --- src/json_branch.c | |
| +++ src/json_branch.c | |
| @@ -68,11 +68,11 @@ | |
| 68 | cson_value * listV; |
| 69 | cson_array * list; |
| 70 | char const * range = NULL; |
| 71 | int branchListFlags = BRL_OPEN_ONLY; |
| 72 | char * sawConversionError = NULL; |
| 73 | Stmt q; |
| 74 | if( !g.perm.Read ){ |
| 75 | json_set_err(FSL_JSON_E_DENIED, |
| 76 | "Requires 'o' permissions."); |
| 77 | return NULL; |
| 78 | } |
| @@ -143,10 +143,11 @@ | |
| 143 | } |
| 144 | if( sawConversionError ){ |
| 145 | json_warn(FSL_JSON_W_COL_TO_JSON_FAILED,"%s",sawConversionError); |
| 146 | free(sawConversionError); |
| 147 | } |
| 148 | return payV; |
| 149 | } |
| 150 | |
| 151 | /* |
| 152 | ** Parameters for the create-branch operation. |
| 153 |
| --- src/json_branch.c | |
| +++ src/json_branch.c | |
| @@ -68,11 +68,11 @@ | |
| 68 | cson_value * listV; |
| 69 | cson_array * list; |
| 70 | char const * range = NULL; |
| 71 | int branchListFlags = BRL_OPEN_ONLY; |
| 72 | char * sawConversionError = NULL; |
| 73 | Stmt q = empty_Stmt; |
| 74 | if( !g.perm.Read ){ |
| 75 | json_set_err(FSL_JSON_E_DENIED, |
| 76 | "Requires 'o' permissions."); |
| 77 | return NULL; |
| 78 | } |
| @@ -143,10 +143,11 @@ | |
| 143 | } |
| 144 | if( sawConversionError ){ |
| 145 | json_warn(FSL_JSON_W_COL_TO_JSON_FAILED,"%s",sawConversionError); |
| 146 | free(sawConversionError); |
| 147 | } |
| 148 | db_finalize(&q); |
| 149 | return payV; |
| 150 | } |
| 151 | |
| 152 | /* |
| 153 | ** Parameters for the create-branch operation. |
| 154 |