p->opt.source null, so that we don't try to free a constant string when
we close the pcap_t.
p->fd = -1; /* not opened yet */
#endif
- p->opt.source = strdup(source);
- if (p->opt.source == NULL) {
- snprintf(ebuf, PCAP_ERRBUF_SIZE, "malloc: %s",
- pcap_strerror(errno));
- free(p);
- return (NULL);
+ if (source != NULL) {
+ p->opt.source = strdup(source);
+ if (p->opt.source == NULL) {
+ snprintf(ebuf, PCAP_ERRBUF_SIZE, "malloc: %s",
+ pcap_strerror(errno));
+ free(p);
+ return (NULL);
+ }
}
/*
bpf_u_int32 magic;
int linklen;
- p = pcap_create_common("(savefile)", errbuf);
+ p = pcap_create_common(NULL, errbuf);
if (p == NULL)
return (NULL);