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);