diff --git a/src/collapse_pretty.c b/src/collapse_pretty.c index 1d39603..5af238b 100644 --- a/src/collapse_pretty.c +++ b/src/collapse_pretty.c @@ -81,7 +81,7 @@ SEXP C_collapse_array_pretty_inner(SEXP x) { error("x must character vector."); //calculate required space - int len = length(x); + size_t len = Rf_length(x); size_t nchar_total = 0; for (int i=0; i= 0x00 && *cur <= 0x1f){ - sprintf(outcur, "\\u%04x", *cur); + snprintf(outcur, 7, "\\u%04x", *cur); outcur += 5; //extra length break; } diff --git a/src/modp_numtoa.c b/src/modp_numtoa.c index 5ade112..680f573 100644 --- a/src/modp_numtoa.c +++ b/src/modp_numtoa.c @@ -161,7 +161,7 @@ size_t modp_dtoa(double value, char* str, int prec) which can be 100s of characters overflowing your buffers == bad */ if (value > thres_max) { - sprintf(str, "%e", neg ? -value : value); + snprintf(str, 13, "%e", neg ? -value : value); return strlen(str); } @@ -265,7 +265,7 @@ size_t modp_dtoa2(double value, char* str, int prec) which can be 100s of characters overflowing your buffers == bad */ if (value > thres_max) { - sprintf(str, "%e", neg ? -value : value); + snprintf(str, 13, "%e", neg ? -value : value); return strlen(str); }