svn commit: samba r17724 - in branches/SAMBA_4_0/source/lib/ldb/ldb_tdb: .

tridge at samba.org tridge at samba.org
Tue Aug 22 23:12:23 GMT 2006


Author: tridge
Date: 2006-08-22 23:12:22 +0000 (Tue, 22 Aug 2006)
New Revision: 17724

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

Log:

don't rely on strnlen() as MacOSX 10.4 doesn't have it. Someday apple
will realise that buffer overflows are bad ....

Modified:
   branches/SAMBA_4_0/source/lib/ldb/ldb_tdb/ldb_pack.c


Changeset:
Modified: branches/SAMBA_4_0/source/lib/ldb/ldb_tdb/ldb_pack.c
===================================================================
--- branches/SAMBA_4_0/source/lib/ldb/ldb_tdb/ldb_pack.c	2006-08-22 22:53:08 UTC (rev 17723)
+++ branches/SAMBA_4_0/source/lib/ldb/ldb_tdb/ldb_pack.c	2006-08-22 23:12:22 UTC (rev 17724)
@@ -155,6 +155,16 @@
 	return 0;
 }
 
+/* using this means we can compile standalone on broken systems like
+   MacOSX 10.4 */
+static size_t ldb_strnlen(const char *s, size_t n)
+{
+	int i;
+	for (i=0; s[i] && i<n; i++)
+		/* noop */ ;
+	return i;
+}
+
 /*
   unpack a ldb message from a linear buffer in TDB_DATA
 
@@ -191,7 +201,7 @@
 		break;
 
 	case LTDB_PACKING_FORMAT:
-		len = strnlen((char *)p, remaining);
+		len = ldb_strnlen((char *)p, remaining);
 		if (len == remaining) {
 			errno = EIO;
 			goto failed;
@@ -234,7 +244,7 @@
 			errno = EIO;
 			goto failed;
 		}
-		len = strnlen((char *)p, remaining-6);
+		len = ldb_strnlen((char *)p, remaining-6);
 		if (len == remaining-6) {
 			errno = EIO;
 			goto failed;



More information about the samba-cvs mailing list