Ticket #172: pavucontrol-segfault-fix.patch

File pavucontrol-segfault-fix.patch, 1.3 KB (added by ndim, 4 years ago)

detect the problem and abort pavucontrol with message instead of segfaulting

  • src/pavucontrol.cc

     
    1919  USA. 
    2020***/ 
    2121 
     22#include <iostream> 
     23 
    2224#ifdef HAVE_CONFIG_H 
    2325#include <config.h> 
    2426#endif 
     
    846848        w->updating = false; 
    847849    } 
    848850 
     851    std::cerr << "info.default_source_name = " 
     852              << (info.default_source_name?info.default_source_name:"(NULL)") 
     853              << std::endl; 
     854    std::cerr << "info.default_sink_name = " 
     855              << (info.default_sink_name?info.default_sink_name:"(NULL)") 
     856              << std::endl; 
     857 
     858    if (!info.default_source_name || !info.default_sink_name) { 
     859      if (!info.default_source_name && !info.default_sink_name) { 
     860        show_error("INVALID (aka NULL) info.default_source_name and info.default_sink_name in MainWindow::updateServer()"); 
     861      } else if (!info.default_source_name) { 
     862      show_error("INVALID (aka NULL) info.default_source_name in MainWindow::updateServer()"); 
     863      } else { 
     864        show_error("INVALID (aka NULL) info.default_sink_name in MainWindow::updateServer()"); 
     865      } 
     866      return; 
     867    } 
     868 
    849869    defaultSourceName = info.default_source_name; 
    850870    defaultSinkName = info.default_sink_name; 
    851871}