Changeset 14633
- Timestamp:
- Dec 25, 2015, 10:19:50 AM (7 years ago)
- Location:
- trunk
- Files:
-
- 19 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/daemon/remote.c
r14615 r14633 578 578 int * values; 579 579 580 values = tr_parseNumberRange (arg, -1, &valueCount);580 values = tr_parseNumberRange (arg, TR_BAD_SIZE, &valueCount); 581 581 for (i=0; i<valueCount; ++i) 582 582 { … … 616 616 int i; 617 617 int valueCount; 618 int * values = tr_parseNumberRange (arg, -1, &valueCount);618 int * values = tr_parseNumberRange (arg, TR_BAD_SIZE, &valueCount); 619 619 620 620 for (i=0; i<valueCount; ++i) -
trunk/gtk/tr-prefs.c
r14525 r14633 502 502 { 503 503 gchar * url = gtk_editable_get_chars (e, 0, -1); 504 const gboolean err = tr_urlParse (url, -1, NULL, NULL, NULL, NULL);504 const gboolean err = tr_urlParse (url, TR_BAD_SIZE, NULL, NULL, NULL, NULL); 505 505 gtk_widget_set_sensitive (GTK_WIDGET (gbutton), !err); 506 506 g_free (url); -
trunk/libtransmission/ConvertUTF.c
r13625 r14633 44 44 #endif 45 45 #include <string.h> /* strlen () */ 46 47 #include "transmission.h" 48 46 49 #include "ConvertUTF.h" 47 50 … … 351 354 */ 352 355 Boolean 353 tr_utf8_validate (const char * str, int max_len, const char ** end)356 tr_utf8_validate (const char * str, size_t max_len, const char ** end) 354 357 { 355 358 const UTF8* source = (const UTF8*) str; … … 362 365 return false; 363 366 364 sourceEnd = source + ( (max_len < 0) ? strlen (str) : (size_t)max_len);367 sourceEnd = source + (max_len == TR_BAD_SIZE ? strlen (str) : max_len); 365 368 366 369 if (source == sourceEnd) … … 391 394 } 392 395 } 393 394 395 396 } 396 397 -
trunk/libtransmission/ConvertUTF.h
r13625 r14633 152 152 153 153 /* intended to work the same as g_utf8_validate */ 154 Boolean tr_utf8_validate (const char * str, int max_len, const char ** end);154 Boolean tr_utf8_validate (const char * str, size_t max_len, const char ** end); 155 155 156 156 -
trunk/libtransmission/announcer-udp.c
r14521 r14633 764 764 765 765 /* see if we've already got a tracker that matches this host + port */ 766 tr_urlParse (url, -1, NULL, &host, &port, NULL);766 tr_urlParse (url, TR_BAD_SIZE, NULL, &host, &port, NULL); 767 767 key = tr_strdup_printf ("%s:%d", host, port); 768 768 for (i=0, n=tr_ptrArraySize (&tau->trackers); !tracker && i<n; ++i) { -
trunk/libtransmission/announcer.c
r14619 r14633 230 230 int port = 0; 231 231 232 tr_urlParse (url, -1, &scheme, &host, &port, NULL);232 tr_urlParse (url, TR_BAD_SIZE, &scheme, &host, &port, NULL); 233 233 ret = tr_strdup_printf ("%s://%s:%d", (scheme?scheme:"invalid"), (host?host:"invalid"), port); 234 234 … … 584 584 char * path; 585 585 bool is_duplicate = false; 586 tr_urlParse (input[i].announce, -1, &scheme, &host, &port, &path);586 tr_urlParse (input[i].announce, TR_BAD_SIZE, &scheme, &host, &port, &path); 587 587 588 588 /* weed out one common source of duplicates: -
trunk/libtransmission/platform.c
r14532 r14633 554 554 { 555 555 if ((end - tmp) > 1) 556 tr_list_append (&candidates, tr_strndup (tmp, end - tmp));556 tr_list_append (&candidates, tr_strndup (tmp, (size_t) (end - tmp))); 557 557 tmp = (char *) end + 1; 558 558 } -
trunk/libtransmission/rpc-server.c
r14552 r14633 131 131 { 132 132 char * headers; 133 int headers_len;133 size_t headers_len; 134 134 char * body; 135 int body_len;135 size_t body_len; 136 136 }; 137 137 … … 177 177 { 178 178 struct tr_mimepart * p = tr_new (struct tr_mimepart, 1); 179 p->headers_len = rnrn - part;179 p->headers_len = (size_t) (rnrn - part); 180 180 p->headers = tr_strndup (part, p->headers_len); 181 p->body_len = ( part+part_len) - (rnrn + 4);181 p->body_len = (size_t) ((part + part_len) - (rnrn + 4)); 182 182 p->body = tr_strndup (rnrn+4, p->body_len); 183 183 tr_ptrArrayAppend (setme_parts, p); … … 222 222 const struct tr_mimepart * p = tr_ptrArrayNth (&parts, i); 223 223 const char * ours = get_current_session_id (server); 224 const int ourlen = strlen (ours);224 const size_t ourlen = strlen (ours); 225 225 hasSessionId = ourlen<=p->body_len && !memcmp (p->body, ours, ourlen); 226 226 } … … 238 238 { 239 239 struct tr_mimepart * p = tr_ptrArrayNth (&parts, i); 240 int body_len = p->body_len;240 size_t body_len = p->body_len; 241 241 tr_variant top, *args; 242 242 tr_variant test; … … 564 564 data->req = req; 565 565 data->server = server; 566 tr_rpc_request_exec_uri (server->session, q +1, -1, rpc_response_func, data);566 tr_rpc_request_exec_uri (server->session, q + 1, TR_BAD_SIZE, rpc_response_func, data); 567 567 } 568 568 else -
trunk/libtransmission/rpc-test.c
r14552 r14633 23 23 tr_variant top; 24 24 25 tr_rpc_parse_list_str (&top, "12", -1);25 tr_rpc_parse_list_str (&top, "12", TR_BAD_SIZE); 26 26 check (tr_variantIsInt (&top)); 27 27 check (tr_variantGetInt (&top, &i)); … … 35 35 tr_variantFree (&top); 36 36 37 tr_rpc_parse_list_str (&top, "6,7", -1);37 tr_rpc_parse_list_str (&top, "6,7", TR_BAD_SIZE); 38 38 check (tr_variantIsList (&top)); 39 39 check (tr_variantListSize (&top) == 2); … … 44 44 tr_variantFree (&top); 45 45 46 tr_rpc_parse_list_str (&top, "asdf", -1);46 tr_rpc_parse_list_str (&top, "asdf", TR_BAD_SIZE); 47 47 check (tr_variantIsString (&top)); 48 48 check (tr_variantGetStr (&top, &str, &len)); … … 51 51 tr_variantFree (&top); 52 52 53 tr_rpc_parse_list_str (&top, "1,3-5", -1);53 tr_rpc_parse_list_str (&top, "1,3-5", TR_BAD_SIZE); 54 54 check (tr_variantIsList (&top)); 55 55 check (tr_variantListSize (&top) == 4); -
trunk/libtransmission/rpcimpl.c
r14594 r14633 2300 2300 tr_rpc_parse_list_str (tr_variant * setme, 2301 2301 const char * str, 2302 intlen)2302 size_t len) 2303 2303 2304 2304 { … … 2330 2330 tr_rpc_request_exec_uri (tr_session * session, 2331 2331 const void * request_uri, 2332 int request_len,2332 size_t request_uri_len, 2333 2333 tr_rpc_response_func callback, 2334 2334 void * callback_user_data) … … 2337 2337 tr_variant top; 2338 2338 tr_variant * args; 2339 char * request = tr_strndup (request_uri, request_ len);2339 char * request = tr_strndup (request_uri, request_uri_len); 2340 2340 2341 2341 tr_variantInitDict (&top, 3); … … 2350 2350 if (delim) 2351 2351 { 2352 char * key = tr_strndup (pch, delim - pch);2352 char * key = tr_strndup (pch, (size_t) (delim - pch)); 2353 2353 int isArg = strcmp (key, "method") && strcmp (key, "tag"); 2354 2354 tr_variant * parent = isArg ? args : ⊤ 2355 2355 2356 tr_rpc_parse_list_str (tr_variantDictAdd (parent, tr_quark_new (key, delim-pch)),2356 tr_rpc_parse_list_str (tr_variantDictAdd (parent, tr_quark_new (key, (size_t) (delim - pch))), 2357 2357 delim + 1, 2358 2358 next ? (size_t)(next - (delim + 1)) : strlen (delim + 1)); -
trunk/libtransmission/rpcimpl.h
r14552 r14633 35 35 void tr_rpc_request_exec_uri (tr_session * session, 36 36 const void * request_uri, 37 int request_len,37 size_t request_uri_len, 38 38 tr_rpc_response_func callback, 39 39 void * callback_user_data); … … 41 41 void tr_rpc_parse_list_str (tr_variant * setme, 42 42 const char * list_str, 43 intlist_str_len);43 size_t list_str_len); 44 44 45 45 #ifdef __cplusplus -
trunk/libtransmission/transmission.h
r14612 r14633 90 90 #define SHA_DIGEST_LENGTH 20 91 91 #define TR_INET6_ADDRSTRLEN 46 92 93 #define TR_BAD_SIZE ((size_t) -1) 92 94 93 95 typedef uint32_t tr_file_index_t; -
trunk/libtransmission/utils-test.c
r14606 r14633 106 106 107 107 in = "hello world"; 108 out = tr_utf8clean (in, -1);108 out = tr_utf8clean (in, TR_BAD_SIZE); 109 109 check_streq (in, out); 110 110 tr_free (out); … … 120 120 check (out != NULL); 121 121 check ((strlen (out) == 17) || (strlen (out) == 33)); 122 check (tr_utf8_validate (out, -1, NULL));122 check (tr_utf8_validate (out, TR_BAD_SIZE, NULL)); 123 123 tr_free (out); 124 124 125 125 /* same string, but utf-8 clean */ 126 126 in = "ТÑÑЎМП бÑÑÑ ÐПгПЌ"; 127 out = tr_utf8clean (in, -1);127 out = tr_utf8clean (in, TR_BAD_SIZE); 128 128 check (out != NULL); 129 check (tr_utf8_validate (out, -1, NULL));129 check (tr_utf8_validate (out, TR_BAD_SIZE, NULL)); 130 130 check_streq (in, out); 131 131 tr_free (out); … … 141 141 int * numbers; 142 142 143 numbers = tr_parseNumberRange ("1-10,13,16-19", -1, &count);143 numbers = tr_parseNumberRange ("1-10,13,16-19", TR_BAD_SIZE, &count); 144 144 check_int_eq (15, count); 145 145 check_int_eq (1, numbers[0]); … … 151 151 tr_free (numbers); 152 152 153 numbers = tr_parseNumberRange ("1-5,3-7,2-6", -1, &count);153 numbers = tr_parseNumberRange ("1-5,3-7,2-6", TR_BAD_SIZE, &count); 154 154 check (count == 7); 155 155 check (numbers != NULL); … … 158 158 tr_free (numbers); 159 159 160 numbers = tr_parseNumberRange ("1-Hello", -1, &count);160 numbers = tr_parseNumberRange ("1-Hello", TR_BAD_SIZE, &count); 161 161 check_int_eq (0, count); 162 162 check (numbers == NULL); 163 163 164 numbers = tr_parseNumberRange ("1-", -1, &count);164 numbers = tr_parseNumberRange ("1-", TR_BAD_SIZE, &count); 165 165 check_int_eq (0, count); 166 166 check (numbers == NULL); 167 167 168 numbers = tr_parseNumberRange ("Hello", -1, &count);168 numbers = tr_parseNumberRange ("Hello", TR_BAD_SIZE, &count); 169 169 check_int_eq (0, count); 170 170 check (numbers == NULL); … … 318 318 319 319 url = "http://1"; 320 check (!tr_urlParse (url, -1, &scheme, &host, &port, &path));320 check (!tr_urlParse (url, TR_BAD_SIZE, &scheme, &host, &port, &path)); 321 321 check_streq ("http", scheme); 322 322 check_streq ("1", host); … … 328 328 329 329 url = "http://www.some-tracker.org/some/path"; 330 check (!tr_urlParse (url, -1, &scheme, &host, &port, &path));330 check (!tr_urlParse (url, TR_BAD_SIZE, &scheme, &host, &port, &path)); 331 331 check_streq ("http", scheme); 332 332 check_streq ("www.some-tracker.org", host); … … 338 338 339 339 url = "http://www.some-tracker.org:80/some/path"; 340 check (!tr_urlParse (url, -1, &scheme, &host, &port, &path));340 check (!tr_urlParse (url, TR_BAD_SIZE, &scheme, &host, &port, &path)); 341 341 check_streq ("http", scheme); 342 342 check_streq ("www.some-tracker.org", host); -
trunk/libtransmission/utils.c
r14619 r14633 366 366 tr_strdup (const void * in) 367 367 { 368 return tr_strndup (in, in ? (int)strlen ((const char *)in) : 0);368 return tr_strndup (in, in != NULL ? strlen (in) : 0); 369 369 } 370 370 371 371 char* 372 tr_strndup (const void * in, int len)372 tr_strndup (const void * in, size_t len) 373 373 { 374 374 char * out = NULL; 375 375 376 if (len < 0)376 if (len == TR_BAD_SIZE) 377 377 { 378 378 out = tr_strdup (in); … … 672 672 673 673 static bool 674 isValidURLChars (const char * url, int url_len)674 isValidURLChars (const char * url, size_t url_len) 675 675 { 676 676 const char * c; … … 707 707 else 708 708 { 709 const int len = strlen (url);709 const size_t len = strlen (url); 710 710 711 711 valid = isValidURLChars (url, len) … … 719 719 /** @brief return true if the URL is a http or https or ftp or sftp one that Transmission understands */ 720 720 bool 721 tr_urlIsValid (const char * url, int url_len)721 tr_urlIsValid (const char * url, size_t url_len) 722 722 { 723 723 bool valid; … … 729 729 else 730 730 { 731 if (url_len < 0)731 if (url_len == TR_BAD_SIZE) 732 732 url_len = strlen (url); 733 733 … … 749 749 int 750 750 tr_urlParse (const char * url_in, 751 intlen,751 size_t len, 752 752 char ** setme_protocol, 753 753 char ** setme_host, … … 757 757 int err; 758 758 int port = 0; 759 int n;759 size_t n; 760 760 char * tmp; 761 761 char * pch; … … 771 771 *pch = '\0'; 772 772 protocol = tmp; 773 protocol_len = pch - protocol;773 protocol_len = (size_t) (pch - protocol); 774 774 pch += 3; 775 775 if ((n = strcspn (pch, ":/"))) … … 1042 1042 1043 1043 char* 1044 tr_utf8clean (const char * str, int max_len)1044 tr_utf8clean (const char * str, size_t max_len) 1045 1045 { 1046 1046 char * ret; 1047 1047 const char * end; 1048 1048 1049 if (max_len < 0)1050 max_len = (int)strlen (str);1049 if (max_len == TR_BAD_SIZE) 1050 max_len = strlen (str); 1051 1051 1052 1052 if (tr_utf8_validate (str, max_len, &end)) … … 1055 1055 ret = to_utf8 (str, max_len); 1056 1056 1057 assert (tr_utf8_validate (ret, -1, NULL));1057 assert (tr_utf8_validate (ret, TR_BAD_SIZE, NULL)); 1058 1058 return ret; 1059 1059 } … … 1235 1235 */ 1236 1236 static bool 1237 parseNumberSection (const char * str, int len, struct number_range * setme)1237 parseNumberSection (const char * str, size_t len, struct number_range * setme) 1238 1238 { 1239 1239 long a, b; … … 1290 1290 */ 1291 1291 int* 1292 tr_parseNumberRange (const char * str_in, int len, int * setmeCount)1292 tr_parseNumberRange (const char * str_in, size_t len, int * setmeCount) 1293 1293 { 1294 1294 int n = 0; … … 1306 1306 if (pch) 1307 1307 { 1308 success = parseNumberSection (walk, pch-walk, &range);1308 success = parseNumberSection (walk, (size_t) (pch - walk), &range); 1309 1309 walk = pch + 1; 1310 1310 } -
trunk/libtransmission/utils.h
r14619 r14633 191 191 * @param len the length of the string to copy. If -1, the entire string is used. 192 192 */ 193 char* tr_utf8clean (const char * str, int len) TR_GNUC_MALLOC;193 char* tr_utf8clean (const char * str, size_t len) TR_GNUC_MALLOC; 194 194 195 195 #ifdef _WIN32 … … 284 284 * @return a newly-allocated copy of `in' that can be freed with tr_free () 285 285 */ 286 char* tr_strndup (const void * in, int len) TR_GNUC_MALLOC;286 char* tr_strndup (const void * in, size_t len) TR_GNUC_MALLOC; 287 287 288 288 /** … … 364 364 365 365 /** @brief return true if the url is a [ http, https, ftp, ftps ] url that Transmission understands */ 366 bool tr_urlIsValid (const char * url, int url_len) TR_GNUC_NONNULL (1);366 bool tr_urlIsValid (const char * url, size_t url_len) TR_GNUC_NONNULL (1); 367 367 368 368 /** @brief parse a URL into its component parts 369 369 @return zero on success or an error number if an error occurred */ 370 370 int tr_urlParse (const char * url, 371 inturl_len,371 size_t url_len, 372 372 char ** setme_scheme, 373 373 char ** setme_host, … … 389 389 */ 390 390 int* tr_parseNumberRange (const char * str, 391 intstr_len,392 int * setmeCount) TR_GNUC_MALLOC TR_GNUC_NONNULL (1);391 size_t str_len, 392 int * setmeCount) TR_GNUC_MALLOC TR_GNUC_NONNULL (1); 393 393 394 394 -
trunk/libtransmission/variant.c
r14619 r14633 188 188 tr_variant_string_set_string (struct tr_variant_string * str, 189 189 const char * bytes, 190 intlen)190 size_t len) 191 191 { 192 192 tr_variant_string_clear (str); … … 194 194 if (bytes == NULL) 195 195 len = 0; 196 else if (len < 0)196 else if (len == TR_BAD_SIZE) 197 197 len = strlen (bytes); 198 198 199 if ( (size_t)len < sizeof(str->str.buf))199 if (len < sizeof (str->str.buf)) 200 200 { 201 201 str->type = TR_STRING_TYPE_BUF; … … 477 477 478 478 void 479 tr_variantInitStr (tr_variant * v, const void * str, int len)479 tr_variantInitStr (tr_variant * v, const void * str, size_t len) 480 480 { 481 481 tr_variantInit (v, TR_VARIANT_TYPE_STR); … … 599 599 { 600 600 tr_variant * child = tr_variantListAdd (list); 601 tr_variantInitStr (child, val, -1);601 tr_variantInitStr (child, val, TR_BAD_SIZE); 602 602 return child; 603 603 } … … 728 728 { 729 729 tr_variant * child = dictFindOrAdd (dict, key, TR_VARIANT_TYPE_STR); 730 tr_variantInitStr (child, val, -1);730 tr_variantInitStr (child, val, TR_BAD_SIZE); 731 731 return child; 732 732 } -
trunk/libtransmission/variant.h
r14491 r14633 207 207 void tr_variantInitStr (tr_variant * initme, 208 208 const void * str, 209 intstr_len);209 size_t str_len); 210 210 211 211 void tr_variantInitQuark (tr_variant * initme, -
trunk/qt/TrackerDelegate.cc
r14554 r14633 194 194 char * host = NULL; 195 195 int port = 0; 196 tr_urlParse (inf.st.announce.toUtf8().constData(), -1, NULL, &host, &port, NULL);196 tr_urlParse (inf.st.announce.toUtf8().constData(), TR_BAD_SIZE, NULL, &host, &port, NULL); 197 197 str += QString::fromLatin1 ("%1:%2").arg (QString::fromUtf8 (host)).arg (port); 198 198 tr_free (host); -
trunk/utils/edit.c
r14619 r14633 212 212 printf ("\tReplaced in \"announce-list\" tier %d: \"%s\" --> \"%s\"\n", tierCount, str, newstr); 213 213 tr_variantFree (node); 214 tr_variantInitStr (node, newstr, -1);214 tr_variantInitStr (node, newstr, TR_BAD_SIZE); 215 215 tr_free (newstr); 216 216 changed = true;
Note: See TracChangeset
for help on using the changeset viewer.