Browse Source

pv: use ctime_r() for a safer multi-thread usage

Victor Seva 5 năm trước cách đây
mục cha
commit
19769eb372
1 tập tin đã thay đổi với 5 bổ sung2 xóa
  1. 5 2
      src/modules/pv/pv_time.c

+ 5 - 2
src/modules/pv/pv_time.c

@@ -246,10 +246,12 @@ int pv_get_timenowf(struct sip_msg *msg, pv_param_t *param,
 		pv_value_t *res)
 {
 	str s;
+	char t_buf[26] = {0};
 	time_t t;
 
 	t = time(NULL);
-	s.s = ctime(&t);
+
+	s.s = ctime_r(&t, t_buf);
 	s.len = strlen(s.s)-1;
 	return pv_get_strintval(msg, param, res, &s, (int)t);
 }
@@ -269,13 +271,14 @@ int pv_get_timef(struct sip_msg *msg, pv_param_t *param,
 		pv_value_t *res)
 {
 	str s;
+	char t_buf[26] = {0};
 
 	if(msg==NULL)
 		return -1;
 
 	msg_set_time(msg);
 
-	s.s = ctime(&msg->tval.tv_sec);
+	s.s = ctime_r(&msg->tval.tv_sec, t_buf);
 	s.len = strlen(s.s)-1;
 	return pv_get_strintval(msg, param, res, &s, (int)msg->tval.tv_sec);
 }