aboutsummaryrefslogtreecommitdiffstats
path: root/plugin
diff options
context:
space:
mode:
Diffstat (limited to 'plugin')
-rw-r--r--plugin/icedteanp/IcedTeaNPPlugin.cc6
-rw-r--r--plugin/icedteanp/IcedTeaPluginUtils.cc54
2 files changed, 31 insertions, 29 deletions
diff --git a/plugin/icedteanp/IcedTeaNPPlugin.cc b/plugin/icedteanp/IcedTeaNPPlugin.cc
index 6f49726..657cf07 100644
--- a/plugin/icedteanp/IcedTeaNPPlugin.cc
+++ b/plugin/icedteanp/IcedTeaNPPlugin.cc
@@ -1227,9 +1227,9 @@ void consume_message(gchar* message) {
{
// clear the "instance X status" parts
- sprintf(parts[0], "");
- sprintf(parts[1], "");
- sprintf(parts[2], "");
+ snprintf(parts[0], sizeof(""), "");
+ snprintf(parts[1], sizeof(""), "");
+ snprintf(parts[2], sizeof(""), "");
// join the rest
gchar* status_message = g_strjoinv(" ", parts);
diff --git a/plugin/icedteanp/IcedTeaPluginUtils.cc b/plugin/icedteanp/IcedTeaPluginUtils.cc
index 854430d..ca538f2 100644
--- a/plugin/icedteanp/IcedTeaPluginUtils.cc
+++ b/plugin/icedteanp/IcedTeaPluginUtils.cc
@@ -147,21 +147,20 @@ void
IcedTeaPluginUtilities::JSIDToString(void* id, std::string* result)
{
- char* id_str = (char*) malloc(sizeof(char)*20); // max = long long = 8446744073709551615 == 19 chars
+ char id_str[20]; // max = long long = 8446744073709551615 == 19 chars
if (sizeof(void*) == sizeof(long long))
{
- sprintf(id_str, "%llu", id);
+ snprintf(id_str, sizeof(id_str), "%llu", id);
}
else
{
- sprintf(id_str, "%lu", id); // else use long
+ snprintf(id_str, sizeof(id_str), "%lu", id); // else use long
}
result->append(id_str);
PLUGIN_DEBUG("Converting pointer %p to %s\n", id, id_str);
- free(id_str);
}
/**
@@ -258,11 +257,9 @@ void
IcedTeaPluginUtilities::itoa(int i, std::string* result)
{
// largest possible integer is 10 digits long
- char* int_str = (char*) malloc(sizeof(char)*11);
- sprintf(int_str, "%d", i);
+ char int_str[11];
+ snprintf(int_str, sizeof(int_str), "%d", i);
result->append(int_str);
-
- free(int_str);
}
/**
@@ -372,18 +369,17 @@ IcedTeaPluginUtilities::convertStringToUTF8(std::string* str, std::string* utf_s
ostream << length;
// UTF-8 characters are 4-bytes max + space + '\0'
- char* hex_value = (char*) malloc(sizeof(char)*10);
+ char hex_value[10];
for (int i = 0; i < str->length(); i++)
{
- sprintf(hex_value, " %hx", str->at(i));
+ snprintf(hex_value, sizeof(hex_value)," %hx", str->at(i));
ostream << hex_value;
}
utf_str->clear();
*utf_str = ostream.str();
- free(hex_value);
PLUGIN_DEBUG("Converted %s to UTF-8 string %s\n", str->c_str(), utf_str->c_str());
}
@@ -683,49 +679,55 @@ IcedTeaPluginUtilities::printNPVariant(NPVariant variant)
void
IcedTeaPluginUtilities::NPVariantToString(NPVariant variant, std::string* result)
{
- char* str = (char*) malloc(sizeof(char)*32); // enough for everything except string
+ char str[32]; // enough for everything except string
+ char* largestr = NULL;
if (NPVARIANT_IS_VOID(variant))
{
- sprintf(str, "%p", variant);
+ snprintf(str, sizeof(str), "%p", variant);
}
else if (NPVARIANT_IS_NULL(variant))
{
- sprintf(str, "NULL");
+ snprintf(str, sizeof(str), "NULL");
}
else if (NPVARIANT_IS_BOOLEAN(variant))
{
if (NPVARIANT_TO_BOOLEAN(variant))
- sprintf(str, "true");
+ snprintf(str, sizeof(str), "true");
else
- sprintf(str, "false");
+ snprintf(str, sizeof(str), "false");
}
else if (NPVARIANT_IS_INT32(variant))
{
- sprintf(str, "%d", NPVARIANT_TO_INT32(variant));
+ snprintf(str, sizeof(str), "%d", NPVARIANT_TO_INT32(variant));
}
else if (NPVARIANT_IS_DOUBLE(variant))
{
- sprintf(str, "%f", NPVARIANT_TO_DOUBLE(variant));;
+ snprintf(str, sizeof(str), "%f", NPVARIANT_TO_DOUBLE(variant));;
}
else if (NPVARIANT_IS_STRING(variant))
{
free(str);
#if MOZILLA_VERSION_COLLAPSED < 1090200
- str = (char*) malloc(sizeof(char)*NPVARIANT_TO_STRING(variant).utf8length);
- sprintf(str, "%s", NPVARIANT_TO_STRING(variant).utf8characters);
+ size_t buffersize = sizeof(char)*NPVARIANT_TO_STRING(variant).utf8length;
+ largestr = (char*) malloc(buffersize);
+ snprintf(str, buffersize, "%s", NPVARIANT_TO_STRING(variant).utf8characters);
#else
- str = (char*) malloc(sizeof(char)*NPVARIANT_TO_STRING(variant).UTF8Length);
- sprintf(str, "%s", NPVARIANT_TO_STRING(variant).UTF8Characters);
+ size_t buffersize = sizeof(char)*NPVARIANT_TO_STRING(variant).UTF8Length;
+ largestr = (char*) malloc(buffersize);
+ snprintf(str, buffersize, "%s", NPVARIANT_TO_STRING(variant).UTF8Characters);
#endif
}
else
{
- sprintf(str, "[Object %p]", variant);
+ snprintf(str, sizeof(str), "[Object %p]", variant);
+ }
+ if (largestr != NULL){
+ result->append(largestr);
+ free(largestr);
+ } else {
+ result->append(str);
}
-
- result->append(str);
- free(str);
}
bool