diff --git a/src/share/instrument/JarFacade.c b/src/share/instrument/JarFacade.c index a60bdbee134c2bb501eff155cb55ad89eedb1219..85c5bd30b2016e2b9c1b595115a893dddca590bb 100644 --- a/src/share/instrument/JarFacade.c +++ b/src/share/instrument/JarFacade.c @@ -23,6 +23,14 @@ * have any questions. */ +#ifdef _WIN32 +/* + * Win* needs this include. However, Linux and Solaris do not. + * Having this include on Solaris SPARC breaks having non US-ASCII + * characters in the value of the Premain-Class attribute. + */ +#include +#endif /* _WIN32 */ #include #include @@ -45,8 +53,9 @@ doAttribute(const char* name, const char* value, void* user_data) { if (attribute->name == NULL) { free(attribute); } else { - char *begin = value; + char *begin = (char *)value; char *end; + size_t value_len; /* skip any leading white space */ while (isspace(*begin)) { @@ -66,7 +75,7 @@ doAttribute(const char* name, const char* value, void* user_data) { return; } - size_t value_len = (size_t)(end - begin); + value_len = (size_t)(end - begin); attribute->value = malloc(value_len + 1); if (attribute->value == NULL) { free(attribute->name); @@ -74,7 +83,7 @@ doAttribute(const char* name, const char* value, void* user_data) { } else { /* save the value without leading or trailing whitespace */ strncpy(attribute->value, begin, value_len); - attribute->value[value_len] = NULL; + attribute->value[value_len] = '\0'; attribute->next = NULL; if (context->head == NULL) { context->head = attribute;