Sophie

Sophie

distrib > Mandriva > 2009.0 > i586 > by-pkgid > 7ad5d2c04a1a765aa0350cb39511fc58 > files > 1

wildmidi-0.2.2-6mdv2009.0.src.rpm

diff -up wildmidi-0.2.2/src/wildmidi_lib.c.abs wildmidi-0.2.2/src/wildmidi_lib.c
--- wildmidi-0.2.2/src/wildmidi_lib.c.abs	2004-01-28 19:13:46.000000000 +0100
+++ wildmidi-0.2.2/src/wildmidi_lib.c	2007-07-14 16:54:28.000000000 +0200
@@ -845,7 +845,7 @@
 			}
 			continue;
 		} else if (strncasecmp(line_buffer, "source ", 7) == 0) {
-			if (config_dir != NULL) {
+			if (config_dir != NULL && line_buffer[7] != '/') {
 				new_config = malloc(strlen(config_dir) + strlen(&line_buffer[7]) + 1);
 				if (new_config == NULL) {
 					WM_ERROR(__FUNCTION__, __LINE__, WM_ERR_MEM, "to parse config", errno);
@@ -1012,8 +1012,8 @@
 			if (chr_ptr != NULL) {
 				*chr_ptr = '\0';
 			}
-			if (strncasecmp(&line_buffer[(line_ptr + strlen(&line_buffer[line_ptr]) - 5)], ".pat", 4) != 0) {
-				if (config_dir != NULL) {
+			if (strncasecmp(&line_buffer[(line_ptr + strlen(&line_buffer[line_ptr]) - 4)], ".pat", 4) != 0) {
+				if (config_dir != NULL && line_buffer[line_ptr] != '/') {
 					tmp_patch->filename = malloc(strlen(config_dir) + strlen(&line_buffer[line_ptr]) + 5);
 					if (tmp_patch->filename == NULL) {
 						WM_ERROR(__FUNCTION__, __LINE__, WM_ERR_MEM, NULL, 0);
@@ -1041,7 +1041,7 @@
 				}
 				strcat(tmp_patch->filename, ".pat");
 			} else {
-				if (config_dir != NULL) {
+				if (config_dir != NULL && line_buffer[line_ptr] != '/') {
 					tmp_patch->filename = malloc(strlen(config_dir) + strlen(&line_buffer[line_ptr]) + 1);
 					if (tmp_patch->filename == NULL) {
 						WM_ERROR(__FUNCTION__, __LINE__, WM_ERR_MEM, NULL, 0);