diff -ur xmms2.git-snapshot-200507282137-org/src/clients/lib/xmmsclient/xmmsclient.c xmms2.git-snapshot-200507282137/src/clients/lib/xmmsclient/xmmsclient.c
--- xmms2.git-snapshot-200507282137-org/src/clients/lib/xmmsclient/xmmsclient.c	2005-07-29 01:38:31.000000000 +0300
+++ xmms2.git-snapshot-200507282137/src/clients/lib/xmmsclient/xmmsclient.c	2005-07-29 02:07:30.000000000 +0300
@@ -99,8 +99,12 @@
 		return NULL;
 	}
 
+	if (!(c->clientname = strdup (clientname))) {
+		x_free(c);
+		return NULL;
+	}
+
 	xmmsc_ref (c);
-	c->clientname = strdup (clientname);
 	cmd_id = 0;
 
 	return c;
@@ -147,7 +151,7 @@
 	uint32_t i;
 	int ret;
 
-	char path[256];
+	char path[PATH_MAX];
 
 	x_api_error_if (!c, "with a NULL connection", false);
 
@@ -158,9 +162,9 @@
 		if (!pwd || !pwd->pw_name)
 			return false;
 
-		snprintf (path, 256, "unix:///tmp/xmms-ipc-%s", pwd->pw_name);
+		snprintf (path, sizeof(path), "unix:///tmp/xmms-ipc-%s", pwd->pw_name);
 	} else {
-		snprintf (path, 256, "%s", ipcpath);
+		snprintf (path, sizeof(path), "%s", ipcpath);
 	}
 
 	ipc = xmmsc_ipc_init ();
@@ -240,7 +244,7 @@
 	xmmsc_ipc_destroy (c->ipc);
 
 	free (c->clientname);
-	free(c);
+	free (c);
 }
 
 /**
@@ -294,7 +298,7 @@
 		return 0;
 	}
 
-	memset (target, '\0', len);
+	memset (target, 0, len);
 
 	pos = fmt;
 	while (strlen (target) + 1 < len) {
@@ -316,7 +320,7 @@
 			break;
 		}
 
-		memset (key, '\0', keylen + 1);
+		memset (key, 0, keylen + 1);
 		strncpy (key, next_key + 2, keylen);
 
 		if (strcmp (key, "seconds") == 0) {
@@ -328,7 +332,7 @@
 				strncat (target, "00", len - strlen (target) - 1);
 			} else {
 				char seconds[10];
-				snprintf (seconds, sizeof seconds, "%02d", (duration/1000)%60);
+				snprintf (seconds, sizeof(seconds), "%02d", (duration/1000)%60);
 				strncat (target, seconds, len - strlen (target) - 1);
 			}
 		} else if (strcmp (key, "minutes") == 0) {
@@ -340,7 +344,7 @@
 				strncat (target, "00", len - strlen (target) - 1);
 			} else {
 				char minutes[10];
-				snprintf (minutes, sizeof minutes, "%02d", duration/60000);
+				snprintf (minutes, sizeof(minutes), "%02d", duration/60000);
 				strncat (target, minutes, len - strlen (target) - 1);
 			}
 		} else {
Only in xmms2.git-snapshot-200507282137/src/clients/lib/xmmsclient: xmmsclient.c~

