It is just the success return value. It is part of the error definition list to have also a value indicating that no error occured.
Your code should not interpret that value as error.
[UPDATE]
From comments it has become clear that the failing function is
snmp_open
:
struct snmp_session * snmp_open ( struct snmp_session *);
This function does not return a
SNMP_ERR*
code but a pointer. When this fails,
NULL
is returned and the error code can be retrieved:
struct snmp_session session;
struct snmp_session *handle;
snmp_sess_init(&session);
handle = snmp_open(&session);
if (NULL == handle)
{
int liberr, syserr,
char *errstr;
snmp_error(&session, &liberr, &syserr, &errstr);
printf("SNMP open error %s.\n", errstr);
free(errstr);
}