summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorliuxueli <[email protected]>2022-05-12 17:38:13 +0800
committerliuxueli <[email protected]>2022-05-12 17:38:13 +0800
commitb76250099c38ffb16c45dfe324ee50d8c3874226 (patch)
tree2c428b38f444ba417b92bef20c6aa529e85fbd91
parent8b70dcb7a2c00c36dfc5eb88b8660e1b186212e9 (diff)
OMPUB-481, TSG-10617: 修复FieldStat2输出prometheous格式,剩余空间较小,snprintf导致内存越界的问题v2.10.9
-rw-r--r--src/fs2prometheus.cpp7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/fs2prometheus.cpp b/src/fs2prometheus.cpp
index 8550040..5585b73 100644
--- a/src/fs2prometheus.cpp
+++ b/src/fs2prometheus.cpp
@@ -7,6 +7,7 @@
#include "field_stat_internal.h"
#define STEP_SIZE 1024
+#define LEFT_MIN_BUFF_LEN 256
#define MAX_URL_PATH_LEN 128
#define FS2_HANDLE_STEP_NUM 16
@@ -207,7 +208,7 @@ static void FS_library_promethues_output(struct mg_connection *c, int ev, void *
continue;
}
- if(payload_len-used_len<=100)
+ if(payload_len-used_len<=LEFT_MIN_BUFF_LEN)
{
payload_len+=STEP_SIZE;
payload=(char *)realloc(payload, payload_len);
@@ -251,7 +252,7 @@ static void FS_library_promethues_output(struct mg_connection *c, int ev, void *
value
);
- if(payload_len-used_len<=100)
+ if(payload_len-used_len<=LEFT_MIN_BUFF_LEN)
{
payload_len+=STEP_SIZE;
payload=(char *)realloc(payload, payload_len);
@@ -299,7 +300,7 @@ static void FS_library_promethues_output(struct mg_connection *c, int ev, void *
sum
);
- if(payload_len-used_len<=100)
+ if(payload_len-used_len<=LEFT_MIN_BUFF_LEN)
{
payload_len+=STEP_SIZE;
payload=(char *)realloc(payload, payload_len);