Browse Source

db_mysql: use gmtime_r() for a safer multi-thread usage

Victor Seva 5 years ago
parent
commit
150e757ec0
1 changed files with 8 additions and 8 deletions
  1. 8 8
      src/modules/db_mysql/my_cmd.c

+ 8 - 8
src/modules/db_mysql/my_cmd.c

@@ -476,7 +476,7 @@ err:
 static inline void update_field(MYSQL_BIND *param, db_fld_t* fld)
 static inline void update_field(MYSQL_BIND *param, db_fld_t* fld)
 {
 {
 	struct my_fld* fp;      /* field payload */
 	struct my_fld* fp;      /* field payload */
-	struct tm* t;
+	struct tm t;
 
 
 	fp = DB_GET_PAYLOAD(fld);
 	fp = DB_GET_PAYLOAD(fld);
 
 
@@ -524,13 +524,13 @@ static inline void update_field(MYSQL_BIND *param, db_fld_t* fld)
 			break;
 			break;
 
 
 		case DB_DATETIME:
 		case DB_DATETIME:
-			t = gmtime(&fld->v.time);
-			fp->time.second = t->tm_sec;
-			fp->time.minute = t->tm_min;
-			fp->time.hour = t->tm_hour;
-			fp->time.day = t->tm_mday;
-			fp->time.month = t->tm_mon + 1;
-			fp->time.year = t->tm_year + 1900;
+			gmtime_r(&fld->v.time, &t);
+			fp->time.second = t.tm_sec;
+			fp->time.minute = t.tm_min;
+			fp->time.hour = t.tm_hour;
+			fp->time.day = t.tm_mday;
+			fp->time.month = t.tm_mon + 1;
+			fp->time.year = t.tm_year + 1900;
 			break;
 			break;
 
 
 		case DB_NONE:
 		case DB_NONE: