Author: gert
Date: 2006-10-22 09:58:05 -0400 (Sun, 22 Oct 2006)
New Revision: 66879
Modified:
trunk/mono/mono/metadata/ChangeLog
trunk/mono/mono/metadata/assembly.c
Log:
* assembly.c: build_assembly_name should not consider a version
number without build or revision number invalid. Fixes bug #79715.
Modified: trunk/mono/mono/metadata/ChangeLog
===================================================================
--- trunk/mono/mono/metadata/ChangeLog 2006-10-22 13:49:41 UTC (rev 66878)
+++ trunk/mono/mono/metadata/ChangeLog 2006-10-22 13:58:05 UTC (rev 66879)
@@ -1,3 +1,8 @@
+2006-10-22 Gert Driesen <[EMAIL PROTECTED]>
+
+ * assembly.c: build_assembly_name should not consider a version
+ number without build or revision number invalid. Fixes bug #79715.
+
2006-10-18 Jonathan Chambers <[EMAIL PROTECTED]>
* icall.c: Have
ves_icall_System_Diagnostics_DefaultTraceListener_WriteWindowsDebugString
Modified: trunk/mono/mono/metadata/assembly.c
===================================================================
--- trunk/mono/mono/metadata/assembly.c 2006-10-22 13:49:41 UTC (rev 66878)
+++ trunk/mono/mono/metadata/assembly.c 2006-10-22 13:58:05 UTC (rev 66879)
@@ -1587,18 +1587,29 @@
{
gint major, minor, build, revision;
gint len;
+ gint version_parts;
gchar *pkey, *pkeyptr, *encoded, tok [8];
memset (aname, 0, sizeof (MonoAssemblyName));
if (version) {
- if (sscanf (version, "%u.%u.%u.%u", &major, &minor, &build,
&revision) != 4)
+ version_parts = sscanf (version, "%u.%u.%u.%u", &major, &minor,
&build, &revision);
+ if (version_parts < 2 || version_parts > 4)
return FALSE;
+ /* FIXME: we should set build & revision to -1 (instead of 0)
+ if these are not set in the version string. That way, later on,
+ we can still determine if these were specified. */
aname->major = major;
aname->minor = minor;
- aname->build = build;
- aname->revision = revision;
+ if (version_parts >= 3)
+ aname->build = build;
+ else
+ aname->build = 0;
+ if (version_parts == 4)
+ aname->revision = revision;
+ else
+ aname->revision = 0;
}
aname->name = g_strdup (name);
_______________________________________________
Mono-patches maillist - [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches