Mercurial > pidgin
comparison src/util.c @ 11407:f9c74bf11ae0
[gaim-migrate @ 13642]
sf patch #1252769, from Federico Schwindt
Fix crashes due to non terminate strings
committer: Tailor Script <tailor@pidgin.im>
author | Mark Doliner <mark@kingant.net> |
---|---|
date | Thu, 01 Sep 2005 04:21:29 +0000 |
parents | e4868370c433 |
children | 3fe6b56a39cc |
comparison
equal
deleted
inserted
replaced
11406:e1507691f5b3 | 11407:f9c74bf11ae0 |
---|---|
2898 gfud->webdata = g_malloc(gfud->data_len); | 2898 gfud->webdata = g_malloc(gfud->data_len); |
2899 | 2899 |
2900 return; | 2900 return; |
2901 } | 2901 } |
2902 | 2902 |
2903 /* Read in data, one byte at a time */ | |
2903 if (read(sock, &data, 1) > 0 || errno == EWOULDBLOCK) | 2904 if (read(sock, &data, 1) > 0 || errno == EWOULDBLOCK) |
2904 { | 2905 { |
2905 if (errno == EWOULDBLOCK) | 2906 if (errno == EWOULDBLOCK) |
2906 { | 2907 { |
2907 errno = 0; | 2908 errno = 0; |
2909 return; | 2910 return; |
2910 } | 2911 } |
2911 | 2912 |
2912 gfud->len++; | 2913 gfud->len++; |
2913 | 2914 |
2914 if (gfud->len == gfud->data_len + 1) | 2915 /* If we've filled up our buffer then make it bigger */ |
2916 if (gfud->len == gfud->data_len) | |
2915 { | 2917 { |
2916 gfud->data_len += (gfud->data_len) / 2; | 2918 gfud->data_len += (gfud->data_len) / 2; |
2917 | 2919 |
2918 gfud->webdata = g_realloc(gfud->webdata, gfud->data_len); | 2920 gfud->webdata = g_realloc(gfud->webdata, gfud->data_len); |
2919 } | 2921 } |
2920 | 2922 |
2921 gfud->webdata[gfud->len - 1] = data; | 2923 gfud->webdata[gfud->len - 1] = data; |
2924 gfud->webdata[gfud->len] = '\0'; | |
2922 | 2925 |
2923 if (!gfud->startsaving) | 2926 if (!gfud->startsaving) |
2924 { | 2927 { |
2925 if (data == '\r') | 2928 if (data == '\r') |
2926 return; | 2929 return; |