X-Git-Url: https://git.octo.it/?p=collectd.git;a=blobdiff_plain;f=src%2Fsnmp_agent.c;h=fe1ecd56ac246b0b3cd4ad3198d420469426cd9f;hp=1ea5cc97233c054ee2706cc966b897345caaeddc;hb=177bd49069d5cd45a6a7b61269f6001b82ff8acc;hpb=9bdf6cbef6eaf867b3a614fdf544cf3b38712ef7;ds=sidebyside diff --git a/src/snmp_agent.c b/src/snmp_agent.c index 1ea5cc97..fe1ecd56 100644 --- a/src/snmp_agent.c +++ b/src/snmp_agent.c @@ -1364,12 +1364,21 @@ static int snmp_agent_preinit(void) { g_agent->tables = llist_create(); g_agent->scalars = llist_create(); + if (g_agent->tables == NULL || g_agent->scalars == NULL) { + ERROR(PLUGIN_NAME ": llist_create() failed"); + llist_destroy(g_agent->scalars); + llist_destroy(g_agent->tables); + return -ENOMEM; + } + int err; /* make us a agentx client. */ err = netsnmp_ds_set_boolean(NETSNMP_DS_APPLICATION_ID, NETSNMP_DS_AGENT_ROLE, 1); if (err != 0) { ERROR(PLUGIN_NAME ": Failed to set agent role (%d)", err); + llist_destroy(g_agent->scalars); + llist_destroy(g_agent->tables); return -1; } @@ -1381,6 +1390,8 @@ static int snmp_agent_preinit(void) { err = init_agent(PLUGIN_NAME); if (err != 0) { ERROR(PLUGIN_NAME ": Failed to initialize the agent library (%d)", err); + llist_destroy(g_agent->scalars); + llist_destroy(g_agent->tables); return -1; }