summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/config-win.h7
-rw-r--r--sql/field.cc6
-rw-r--r--sql/sql_analyse.cc3
-rw-r--r--sql/sql_string.cc3
4 files changed, 13 insertions, 6 deletions
diff --git a/include/config-win.h b/include/config-win.h
index 4c29f9a0a8c..eca0de680d8 100644
--- a/include/config-win.h
+++ b/include/config-win.h
@@ -222,8 +222,6 @@ inline double ulonglong2double(ulonglong value)
#define HAVE_PERROR
#define HAVE_VFPRINT
-#define HAVE_SNPRINTF
-#define _snprintf snprintf
#define HAVE_CHSIZE /* System has chsize() function */
#define HAVE_RENAME /* Have rename() as function */
#define HAVE_BINARY_STREAMS /* Have "b" flag in streams */
@@ -248,6 +246,11 @@ inline double ulonglong2double(ulonglong value)
#define HAVE_ALLOCA
#define HAVE_COMPRESS
+#ifdef NOT_USED
+#define HAVE_SNPRINTF /* Gave link error */
+#define _snprintf snprintf
+#endif
+
#ifdef _MSC_VER
#define HAVE_LDIV /* The optimizer breaks in zortech for ldiv */
#define HAVE_ANSI_INCLUDE
diff --git a/sql/field.cc b/sql/field.cc
index 814a36e70a3..ba2362281ce 100644
--- a/sql/field.cc
+++ b/sql/field.cc
@@ -501,7 +501,8 @@ void Field_decimal::store(double nr)
fyllchar = zerofill ? (char) '0' : (char) ' ';
#ifdef HAVE_SNPRINTF_
- snprintf(buff,sizeof(buff), "%.*f",(int) dec,nr);
+ buff[sizeof(buff)-1]=0; // Safety
+ snprintf(buff,sizeof(buff)-1, "%.*f",(int) dec,nr);
#else
sprintf(buff,"%.*f",dec,nr);
#endif
@@ -2075,7 +2076,8 @@ String *Field_double::val_str(String *val_buffer,
*to++= *pos++;
#else
#ifdef HAVE_SNPRINTF
- snprintf(to,to_length,"%.*f",dec,nr);
+ buff[to_length-1]=0; // Safety
+ snprintf(to,to_length-1,"%.*f",dec,nr);
#else
sprintf(to,"%.*f",dec,nr);
#endif
diff --git a/sql/sql_analyse.cc b/sql/sql_analyse.cc
index 96525822c52..de367e8c052 100644
--- a/sql/sql_analyse.cc
+++ b/sql/sql_analyse.cc
@@ -359,7 +359,8 @@ void field_real::add()
else
{
#ifdef HAVE_SNPRINTF
- snprintf(buff, sizeof(buff), "%-.*f", (int) decs, num);
+ buff[sizeof(buff)-1]=0; // Safety
+ snprintf(buff, sizeof(buff)-1, "%-.*f", (int) decs, num);
#else
sprintf(buff, "%-.*f", (int) decs, num);
#endif
diff --git a/sql/sql_string.cc b/sql/sql_string.cc
index e3cf8cc7abc..83b21af87f5 100644
--- a/sql/sql_string.cc
+++ b/sql/sql_string.cc
@@ -186,7 +186,8 @@ end:
return FALSE;
#else
#ifdef HAVE_SNPRINTF
- snprintf(buff,sizeof(buff), "%.*f",(int) decimals,num);
+ buff[sizeof(buff)-1]=0; // Safety
+ snprintf(buff,sizeof(buff)-1, "%.*f",(int) decimals,num);
#else
sprintf(buff,"%.*f",(int) decimals,num);
#endif