comparison src/timidity/libtimidity/common.c @ 2268:bcd96cdc3a92

Fixes memleaks in open_file() function of libtimidity (Bugzilla #27)
author Jussi Judin <jjudin+audacious@iki.fi>
date Tue, 25 Dec 2007 02:16:22 -0600
parents fa9f85cebade
children
comparison
equal deleted inserted replaced
2267:2e961ce4bfe8 2268:bcd96cdc3a92
39 39
40 /* This is meant to find and open files for reading */ 40 /* This is meant to find and open files for reading */
41 VFSFile *open_file(char *name) 41 VFSFile *open_file(char *name)
42 { 42 {
43 VFSFile *fp; 43 VFSFile *fp;
44 gchar* uri;
44 45
45 if (!name || !(*name)) 46 if (!name || !(*name))
46 { 47 {
47 DEBUG_MSG("Attempted to open nameless file.\n"); 48 DEBUG_MSG("Attempted to open nameless file.\n");
48 return 0; 49 return 0;
49 } 50 }
50 51
51 /* First try the given name */ 52 /* First try the given name */
52 53
53 DEBUG_MSG("Trying to open %s\n", name); 54 DEBUG_MSG("Trying to open %s\n", name);
54 if ((fp = aud_vfs_fopen(g_filename_to_uri(name, NULL, NULL), OPEN_MODE))) 55 uri = g_filename_to_uri(name, NULL, NULL);
56 fp = aud_vfs_fopen(uri, OPEN_MODE);
57 g_free(uri);
58 if (fp)
55 return fp; 59 return fp;
56 60
57 if (name[0] != PATH_SEP) 61 if (name[0] != PATH_SEP)
58 { 62 {
59 char current_filename[1024]; 63 char current_filename[1024];
73 current_filename[l + 1] = '\0'; 77 current_filename[l + 1] = '\0';
74 } 78 }
75 } 79 }
76 strcat(current_filename, name); 80 strcat(current_filename, name);
77 DEBUG_MSG("Trying to open %s\n", current_filename); 81 DEBUG_MSG("Trying to open %s\n", current_filename);
78 if ((fp = aud_vfs_fopen(g_filename_to_uri(current_filename, NULL, NULL), OPEN_MODE))) 82 uri = g_filename_to_uri(current_filename, NULL, NULL);
83 fp = aud_vfs_fopen(uri, OPEN_MODE);
84 g_free(uri);
85 if (fp)
79 return fp; 86 return fp;
80 plp = plp->next; 87 plp = plp->next;
81 } 88 }
82 } 89 }
83 90