svn commit: samba r1820 - in branches/SAMBA_4_0/source: lib torture/raw

tridge at samba.org tridge at samba.org
Sat Aug 14 05:57:43 GMT 2004


Author: tridge
Date: 2004-08-14 05:57:43 +0000 (Sat, 14 Aug 2004)
New Revision: 1820
WebSVN: http://websvn.samba.org/websvn/changeset.php?rep=samba&path=/branches/SAMBA_4_0/source&rev=1820&nolog=1
Log:
added a strcmp_safe() that handles NULL pointers. Needed for the
search torture test, as some servers return really bad entries.



Modified:
   branches/SAMBA_4_0/source/lib/util_str.c
   branches/SAMBA_4_0/source/torture/raw/search.c

Changeset:
Modified: branches/SAMBA_4_0/source/lib/util_str.c
===================================================================
--- branches/SAMBA_4_0/source/lib/util_str.c	2004-08-14 05:56:12 UTC (rev 1819)
+++ branches/SAMBA_4_0/source/lib/util_str.c	2004-08-14 05:57:43 UTC (rev 1820)
@@ -1464,3 +1464,18 @@
 	return True;
 }
 
+
+
+/*
+  varient of strcmp() that handles NULL ptrs
+*/
+int strcmp_safe(const char *s1, const char *s2)
+{
+	if (s1 == s2) {
+		return 0;
+	}
+	if (s1 == NULL || s2 == NULL) {
+		return s1?-1:1;
+	}
+	return strcmp(s1, s2);
+}

Modified: branches/SAMBA_4_0/source/torture/raw/search.c
===================================================================
--- branches/SAMBA_4_0/source/torture/raw/search.c	2004-08-14 05:56:12 UTC (rev 1819)
+++ branches/SAMBA_4_0/source/torture/raw/search.c	2004-08-14 05:57:43 UTC (rev 1820)
@@ -512,27 +512,27 @@
 
 static int search_both_compare(union smb_search_data *d1, union smb_search_data *d2)
 {
-	return strcmp(d1->both_directory_info.name.s, d2->both_directory_info.name.s);
+	return strcmp_safe(d1->both_directory_info.name.s, d2->both_directory_info.name.s);
 }
 
 static int search_standard_compare(union smb_search_data *d1, union smb_search_data *d2)
 {
-	return strcmp(d1->standard.name.s, d2->standard.name.s);
+	return strcmp_safe(d1->standard.name.s, d2->standard.name.s);
 }
 
 static int search_ea_size_compare(union smb_search_data *d1, union smb_search_data *d2)
 {
-	return strcmp(d1->ea_size.name.s, d2->ea_size.name.s);
+	return strcmp_safe(d1->ea_size.name.s, d2->ea_size.name.s);
 }
 
 static int search_directory_info_compare(union smb_search_data *d1, union smb_search_data *d2)
 {
-	return strcmp(d1->directory_info.name.s, d2->directory_info.name.s);
+	return strcmp_safe(d1->directory_info.name.s, d2->directory_info.name.s);
 }
 
 static int search_old_compare(union smb_search_data *d1, union smb_search_data *d2)
 {
-	return strcmp(d1->search.name, d2->search.name);
+	return strcmp_safe(d1->search.name, d2->search.name);
 }
 
 



More information about the samba-cvs mailing list