Index: mono/metadata/marshal.c
===================================================================
RCS file: /mono/mono/mono/metadata/marshal.c,v
retrieving revision 1.84
diff -u -r1.84 marshal.c
--- mono/metadata/marshal.c	8 Feb 2003 07:53:49 -0000	1.84
+++ mono/metadata/marshal.c	26 Feb 2003 13:35:58 -0000
@@ -167,8 +167,9 @@
 	g_assert (dst != NULL);
 	g_assert (size > 0);
 
+	memset (dst, 0, size);
+
 	if (!src) {
-		memset (dst, 0, size);
 		return;
 	}
 
Index: mono/tests/libtest.c
===================================================================
RCS file: /mono/mono/mono/tests/libtest.c,v
retrieving revision 1.17
diff -u -r1.17 libtest.c
--- mono/tests/libtest.c	23 Jan 2003 18:08:18 -0000	1.17
+++ mono/tests/libtest.c	26 Feb 2003 13:35:58 -0000
@@ -258,3 +258,30 @@
 	return 1;
 }
 #endif
+
+typedef struct {
+	char a[100];
+} ByValStrStruct;
+
+ByValStrStruct *
+mono_test_byvalstr_gen (void)
+{
+	ByValStrStruct *ret;
+	int i;
+	
+	ret = g_malloc(sizeof(ByValStrStruct));
+	memset(ret, 'a', sizeof(ByValStrStruct)-1);
+	ret->a[sizeof(ByValStrStruct)-1] = 0;
+
+	return ret;
+}
+
+int
+mono_test_byvalstr_check (ByValStrStruct* data, char* correctString)
+{
+	int ret;
+
+	ret = strcmp(data->a, correctString);
+	g_free(data);
+	return (ret != 0);
+}
