+--- a/mib.c
++++ b/mib.c
+@@ -120,6 +120,9 @@ static int encode_snmp_element_oid(value
+ int length;
+ int i;
+
++ if (oid_value == NULL) {
++ return -1;
++ }
+ buffer = value->data.buffer;
+ length = 1;
+ for (i = 2; i < oid_value->subid_list_length; i++) {
+@@ -293,6 +296,8 @@ static int mib_build_entry(const oid_t *
+ value->data.encoded_length = 0;
+ value->data.buffer = malloc(value->data.max_length);
+ if (encode_snmp_element_oid(value, oid_aton((const char *)default_value)) == -1) {
++ lprintf(LOG_ERR, "could not create MIB entry '%s.%d.%d': invalid oid '%s'\n",
++ oid_ntoa(prefix), column, row, (char *)default_value);
+ return -1;
+ }
+ break;