Problem with libpcap on RHEL 6.9 - segmentation fault(core dumped)
by usualsuspecter from LinuxQuestions.org on (#5F2C7)
I have C++ application which parse .pcap files. it works with under 100 MB but when i try to parse greater than 1~2 GB files. i have taken Segmentation Fault. (Segmentation Fault (core dumped)) Here is the where i take that fault :
for(int size=0; size < 100; size++){
//cout<<"FILE LISTE: "<<file_name_list[size]<<endl;
//cout<<"FILE PATH LISTE: "<<filelist[size]<<endl;
descr = pcap_open_offline(filelist[size].c_str(), errbuf);
result = explode(file_name_list[size], '_');
phonenumbers.push_back(result[1]);
timeval.push_back(result[0]);
date[size] = timeval[size].substr(8,timeval[size].size());
tel[size] = phonenumbers[size];
a=size;
if (descr == NULL) {
cout << "pcap_open_live() failed: " << errbuf << endl;
//return 1;
}
if (pcap_loop(descr, 0, packetHandler, NULL) < 0) { // start packet processing loop, just like live capture
cout << "pcap_loop() failed: " << pcap_geterr(descr);
//return 1;
}
pcap_close(descr);
}


for(int size=0; size < 100; size++){
//cout<<"FILE LISTE: "<<file_name_list[size]<<endl;
//cout<<"FILE PATH LISTE: "<<filelist[size]<<endl;
descr = pcap_open_offline(filelist[size].c_str(), errbuf);
result = explode(file_name_list[size], '_');
phonenumbers.push_back(result[1]);
timeval.push_back(result[0]);
date[size] = timeval[size].substr(8,timeval[size].size());
tel[size] = phonenumbers[size];
a=size;
if (descr == NULL) {
cout << "pcap_open_live() failed: " << errbuf << endl;
//return 1;
}
if (pcap_loop(descr, 0, packetHandler, NULL) < 0) { // start packet processing loop, just like live capture
cout << "pcap_loop() failed: " << pcap_geterr(descr);
//return 1;
}
pcap_close(descr);
}