Fossil SCM
Fix blob leaks on one return path.
Commit
2438518e66661ff5b28e5e61a95fcca1aefa0d17
Parent
0db184fc8e750cd…
1 file changed
+3
-1
+3
-1
| --- src/th_main.c | ||
| +++ src/th_main.c | ||
| @@ -920,10 +920,12 @@ | ||
| 920 | 920 | " (" MANIFEST_DATE " " MANIFEST_VERSION ")\r\n"); |
| 921 | 921 | blob_appendf(&hdr, "Content-Type: text/plain\r\n"); |
| 922 | 922 | blob_appendf(&hdr, "Content-Length: %d\r\n\r\n", blob_size(&payload)); |
| 923 | 923 | if( transport_open(&urlData) ){ |
| 924 | 924 | Th_ErrorMessage(interp, transport_errmsg(&urlData), 0, 0); |
| 925 | + blob_reset(&hdr); | |
| 926 | + blob_reset(&payload); | |
| 925 | 927 | return TH_ERROR; |
| 926 | 928 | } |
| 927 | 929 | transport_send(&urlData, &hdr); |
| 928 | 930 | transport_send(&urlData, &payload); |
| 929 | 931 | blob_reset(&hdr); |
| @@ -930,13 +932,13 @@ | ||
| 930 | 932 | blob_reset(&payload); |
| 931 | 933 | transport_close(&urlData); |
| 932 | 934 | Th_SetResult(interp, 0, 0); /* NOTE: Asynchronous, no results. */ |
| 933 | 935 | return TH_OK; |
| 934 | 936 | }else{ |
| 935 | - blob_reset(&payload); | |
| 936 | 937 | Th_ErrorMessage(interp, |
| 937 | 938 | "synchronous requests are not yet implemented", 0, 0); |
| 939 | + blob_reset(&payload); | |
| 938 | 940 | return TH_ERROR; |
| 939 | 941 | } |
| 940 | 942 | } |
| 941 | 943 | |
| 942 | 944 | /* |
| 943 | 945 |
| --- src/th_main.c | |
| +++ src/th_main.c | |
| @@ -920,10 +920,12 @@ | |
| 920 | " (" MANIFEST_DATE " " MANIFEST_VERSION ")\r\n"); |
| 921 | blob_appendf(&hdr, "Content-Type: text/plain\r\n"); |
| 922 | blob_appendf(&hdr, "Content-Length: %d\r\n\r\n", blob_size(&payload)); |
| 923 | if( transport_open(&urlData) ){ |
| 924 | Th_ErrorMessage(interp, transport_errmsg(&urlData), 0, 0); |
| 925 | return TH_ERROR; |
| 926 | } |
| 927 | transport_send(&urlData, &hdr); |
| 928 | transport_send(&urlData, &payload); |
| 929 | blob_reset(&hdr); |
| @@ -930,13 +932,13 @@ | |
| 930 | blob_reset(&payload); |
| 931 | transport_close(&urlData); |
| 932 | Th_SetResult(interp, 0, 0); /* NOTE: Asynchronous, no results. */ |
| 933 | return TH_OK; |
| 934 | }else{ |
| 935 | blob_reset(&payload); |
| 936 | Th_ErrorMessage(interp, |
| 937 | "synchronous requests are not yet implemented", 0, 0); |
| 938 | return TH_ERROR; |
| 939 | } |
| 940 | } |
| 941 | |
| 942 | /* |
| 943 |
| --- src/th_main.c | |
| +++ src/th_main.c | |
| @@ -920,10 +920,12 @@ | |
| 920 | " (" MANIFEST_DATE " " MANIFEST_VERSION ")\r\n"); |
| 921 | blob_appendf(&hdr, "Content-Type: text/plain\r\n"); |
| 922 | blob_appendf(&hdr, "Content-Length: %d\r\n\r\n", blob_size(&payload)); |
| 923 | if( transport_open(&urlData) ){ |
| 924 | Th_ErrorMessage(interp, transport_errmsg(&urlData), 0, 0); |
| 925 | blob_reset(&hdr); |
| 926 | blob_reset(&payload); |
| 927 | return TH_ERROR; |
| 928 | } |
| 929 | transport_send(&urlData, &hdr); |
| 930 | transport_send(&urlData, &payload); |
| 931 | blob_reset(&hdr); |
| @@ -930,13 +932,13 @@ | |
| 932 | blob_reset(&payload); |
| 933 | transport_close(&urlData); |
| 934 | Th_SetResult(interp, 0, 0); /* NOTE: Asynchronous, no results. */ |
| 935 | return TH_OK; |
| 936 | }else{ |
| 937 | Th_ErrorMessage(interp, |
| 938 | "synchronous requests are not yet implemented", 0, 0); |
| 939 | blob_reset(&payload); |
| 940 | return TH_ERROR; |
| 941 | } |
| 942 | } |
| 943 | |
| 944 | /* |
| 945 |