--- src/zabbix_server/poller/checks_snmp.c.20200128-091635	2020-01-28 09:16:35.000000000 +0100
+++ src/zabbix_server/poller/checks_snmp.c	2021-01-14 13:20:05.398556972 +0100
@@ -642,7 +642,9 @@
 static char	*zbx_snmp_get_octet_string(const struct variable_list *var)
 {
 	const char	*hint;
-	char		buffer[MAX_STRING_LEN];
+	// 20210114/gj	Answer might be longer than 2K
+	// char		buffer[MAX_STRING_LEN];
+	char		*buffer = NULL;		// 20210114/gj
 	char		*strval_dyn = NULL;
 	struct tree     *subtree;
 
@@ -653,7 +655,8 @@
 	hint = (NULL != subtree ? subtree->hint : NULL);
 
 	/* we will decide if we want the value from var->val or what snprint_value() returned later */
-	if (-1 == snprint_value(buffer, sizeof(buffer), var->name, var->name_length, var))
+	buffer = (char *)zbx_malloc(buffer, MAX_BUFFER_LEN);	// 20210114/gj
+	if (-1 == snprint_value(buffer, MAX_BUFFER_LEN, var->name, var->name_length, var))
 		goto end;
 
 	zabbix_log(LOG_LEVEL_DEBUG, "%s() full value:'%s' hint:'%s'", __func__, buffer, ZBX_NULL2STR(hint));
@@ -685,6 +688,7 @@
 	}
 
 end:
+	zbx_free(buffer);	// 20210114/gj
 	zabbix_log(LOG_LEVEL_DEBUG, "End of %s():'%s'", __func__, ZBX_NULL2STR(strval_dyn));
 
 	return strval_dyn;
