comparison src/audacious/input.c @ 4539:8c2a166168dd

Fix a theoretical infinite loop: if plugin matches a mime-type, but probe function does not recognize contents, input probing gets into a infinite loop.
author Matti Hamalainen <ccr@tnsp.org>
date Sun, 11 May 2008 01:40:50 +0300
parents 51b7809c2d87
children cf6711eeb12f
comparison
equal deleted inserted replaced
4538:04da24c63467 4539:8c2a166168dd
397 } 397 }
398 398
399 399
400 // apply mimetype check. note that stdio does not support mimetype check. 400 // apply mimetype check. note that stdio does not support mimetype check.
401 mimetype = vfs_get_metadata(fd, "content-type"); 401 mimetype = vfs_get_metadata(fd, "content-type");
402 if ((ip = mime_get_plugin(mimetype)) != NULL && ip->enabled) { 402 if (mimetype) {
403 while(1) { 403 ip = mime_get_plugin(mimetype);
404 if (!ip || !ip->enabled) 404 g_free(mimetype);
405 continue; 405 } else
406 406 ip = NULL;
407 pr = input_do_check_file(ip, fd, filename_proxy, loading); 407
408 408 if (ip && ip->enabled) {
409 if(pr) { 409 pr = input_do_check_file(ip, fd, filename_proxy, loading);
410 g_free(filename_proxy); 410 if (pr) {
411 vfs_fclose(fd); 411 g_free(filename_proxy);
412 return pr; 412 vfs_fclose(fd);
413 } 413 return pr;
414 } 414 }
415 } 415 }
416 416
417 417
418 // apply ext_hash check 418 // apply ext_hash check