diff --git a/mono/metadata/ChangeLog b/mono/metadata/ChangeLog index 6fc8020a85c53..13869a398fced 100644 --- a/mono/metadata/ChangeLog +++ b/mono/metadata/ChangeLog @@ -1,3 +1,7 @@ +2006-01-24 Atsushi Enomoto + + * object.c, marshal.c : Fixed runtime part of bug #77315. Reject + invalid surrogate in UTF7/UTF8 bytes and don't return NULL. Tue Jan 24 09:56:16 CET 2006 Paolo Molaro diff --git a/mono/metadata/marshal.c b/mono/metadata/marshal.c index 9b8476e5376df..3ab12fa164291 100644 --- a/mono/metadata/marshal.c +++ b/mono/metadata/marshal.c @@ -485,9 +485,9 @@ mono_string_to_lpstr (MonoString *s) tmp = g_utf16_to_utf8 (mono_string_chars (s), s->length, NULL, &len, &error); if (error) { - g_warning (error->message); + MonoException *exc = mono_get_exception_argument ("string", error->message); g_error_free (error); - return NULL; + mono_raise_exception(exc); } else { as = CoTaskMemAlloc (len + 1); diff --git a/mono/metadata/object.c b/mono/metadata/object.c index b222f0ac1849b..0b96e930c25bd 100644 --- a/mono/metadata/object.c +++ b/mono/metadata/object.c @@ -3234,8 +3234,9 @@ mono_string_to_utf8 (MonoString *s) as = g_utf16_to_utf8 (mono_string_chars (s), s->length, NULL, NULL, &error); if (error) { - g_warning (error->message); + MonoException *exc = mono_get_exception_argument ("string", error->message); g_error_free (error); + mono_raise_exception(exc); } return as;