svn commit: samba r26457 - in branches/SAMBA_4_0/source/lib/util: .

kai at samba.org kai at samba.org
Fri Dec 14 14:47:07 GMT 2007


Author: kai
Date: 2007-12-14 14:47:07 +0000 (Fri, 14 Dec 2007)
New Revision: 26457

WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=26457

Log:
Janitorial: Don't use pstring in tdb_unpack

Modified:
   branches/SAMBA_4_0/source/lib/util/util_tdb.c


Changeset:
Modified: branches/SAMBA_4_0/source/lib/util/util_tdb.c
===================================================================
--- branches/SAMBA_4_0/source/lib/util/util_tdb.c	2007-12-14 14:28:21 UTC (rev 26456)
+++ branches/SAMBA_4_0/source/lib/util/util_tdb.c	2007-12-14 14:47:07 UTC (rev 26457)
@@ -445,7 +445,7 @@
 	int len;
 	int *i;
 	void **p;
-	char *s, **b;
+	char *s, **b, **ps;
 	char c;
 	char *buf0 = buf;
 	const char *fmt0 = fmt;
@@ -453,7 +453,7 @@
 	tdb_log_func log_fn = tdb_log_fn(tdb);
 
 	va_start(ap, fmt);
-	
+
 	while (*fmt) {
 		switch ((c=*fmt++)) {
 		case 'b':
@@ -485,11 +485,10 @@
 			*p = (void *)IVAL(buf, 0);
 			break;
 		case 'P':
-			s = va_arg(ap,char *);
-			len = strlen(buf) + 1;
-			if (bufsize < len || len > sizeof(pstring))
-				goto no_space;
-			memcpy(s, buf, len);
+			/* Return a malloc'ed string. */
+			ps = va_arg(ap,char **	);
+			len = strlen((const char *)buf) + 1;
+			*ps = strdup((const char *)buf);
 			break;
 		case 'f':
 			s = va_arg(ap,char *);
@@ -518,7 +517,7 @@
 			memcpy(*b, buf+4, *i);
 			break;
 		default:
-			log_fn(tdb, 0, "Unknown tdb_unpack format %c in %s\n", 
+			log_fn(tdb, 0, "Unknown tdb_unpack format %c in %s\n",
 			       c, fmt);
 
 			len = 0;
@@ -531,7 +530,7 @@
 
 	va_end(ap);
 
-	log_fn(tdb, 18, "tdb_unpack(%s, %d) -> %d\n", 
+	log_fn(tdb, 18, "tdb_unpack(%s, %d) -> %d\n",
 	       fmt0, bufsize0, (int)PTR_DIFF(buf, buf0));
 
 	return PTR_DIFF(buf, buf0);



More information about the samba-cvs mailing list