char *errstr;
if (odm_unlock(odmlockid) == -1) {
- if (odm_err_msg(odmerrno, &errstr) == -1)
- errstr = "Unknown error";
- snprintf(errbuf, PCAP_ERRBUF_SIZE,
- "bpf_load: odm_unlock failed: %s",
- errstr);
+ if (errbuf != NULL) {
+ if (odm_err_msg(odmerrno, &errstr) == -1)
+ errstr = "Unknown error";
+ snprintf(errbuf, PCAP_ERRBUF_SIZE,
+ "bpf_load: odm_unlock failed: %s",
+ errstr);
+ }
return (PCAP_ERROR);
}
if (odm_terminate() == -1) {
- if (odm_err_msg(odmerrno, &errstr) == -1)
- errstr = "Unknown error";
- snprintf(errbuf, PCAP_ERRBUF_SIZE,
- "bpf_load: odm_terminate failed: %s",
- errstr);
+ if (errbuf != NULL) {
+ if (odm_err_msg(odmerrno, &errstr) == -1)
+ errstr = "Unknown error";
+ snprintf(errbuf, PCAP_ERRBUF_SIZE,
+ "bpf_load: odm_terminate failed: %s",
+ errstr);
+ }
return (PCAP_ERROR);
}
if (major == -1) {
snprintf(errbuf, PCAP_ERRBUF_SIZE,
"bpf_load: genmajor failed: %s", pcap_strerror(errno));
- (void)bpf_odmcleanup(errbuf);
+ (void)bpf_odmcleanup(NULL);
return (PCAP_ERROR);
}
snprintf(errbuf, PCAP_ERRBUF_SIZE,
"bpf_load: genminor failed: %s",
pcap_strerror(errno));
- (void)bpf_odmcleanup(errbuf);
+ (void)bpf_odmcleanup(NULL);
return (PCAP_ERROR);
}
}