Mercurial > audlegacy-plugins
comparison src/madplug/input.c @ 675:1ea4cfb007e0 trunk
[svn] - if genre name is generated from number, it may exceed allocated memory block.
| author | yaz |
|---|---|
| date | Mon, 19 Feb 2007 18:53:25 -0800 |
| parents | fadf4c18a1cf |
| children | 46743e3ebcc1 |
comparison
equal
deleted
inserted
replaced
| 674:fadf4c18a1cf | 675:1ea4cfb007e0 |
|---|---|
| 168 gboolean is_num = TRUE; | 168 gboolean is_num = TRUE; |
| 169 | 169 |
| 170 string_len = mad_ucs4len((id3_ucs4_t *)string); | 170 string_len = mad_ucs4len((id3_ucs4_t *)string); |
| 171 tail = (id3_ucs4_t *)string + string_len; | 171 tail = (id3_ucs4_t *)string + string_len; |
| 172 | 172 |
| 173 ret = g_malloc0(BYTES(string_len + 1)); | 173 if(BYTES(string_len + 1) > 1024) { |
| 174 ret = g_malloc0(BYTES(string_len + 1)); | |
| 175 } | |
| 176 else { | |
| 177 ret = g_malloc0(1024); | |
| 178 } | |
| 174 | 179 |
| 175 for(ptr = (id3_ucs4_t *)string; *ptr != 0 && ptr <= tail; ptr++) { | 180 for(ptr = (id3_ucs4_t *)string; *ptr != 0 && ptr <= tail; ptr++) { |
| 176 if(*ptr == '(') { | 181 if(*ptr == '(') { |
| 177 if(*(++ptr) == '(') { // escaped text like: ((something) | 182 if(*(++ptr) == '(') { // escaped text like: ((something) |
| 178 for(end = ptr; *end != ')' && *end != 0;) { // copy "(something)" | 183 for(end = ptr; *end != ')' && *end != 0;) { // copy "(something)" |
| 262 } | 267 } |
| 263 | 268 |
| 264 gchar *input_id3_get_string(struct id3_tag * tag, char *frame_name) | 269 gchar *input_id3_get_string(struct id3_tag * tag, char *frame_name) |
| 265 { | 270 { |
| 266 gchar *rtn0 = NULL, *rtn = NULL; | 271 gchar *rtn0 = NULL, *rtn = NULL; |
| 267 const id3_ucs4_t *string_const; | 272 const id3_ucs4_t *string_const = NULL; |
| 268 id3_ucs4_t *string; | 273 id3_ucs4_t *string = NULL; |
| 269 struct id3_frame *frame; | 274 struct id3_frame *frame; |
| 270 union id3_field *field; | 275 union id3_field *field; |
| 271 int encoding = -1; | 276 int encoding = -1; |
| 272 | 277 |
| 273 frame = id3_tag_findframe(tag, frame_name, 0); | 278 frame = id3_tag_findframe(tag, frame_name, 0); |
