summaryrefslogtreecommitdiffstats
path: root/main.cxx
diff options
context:
space:
mode:
authorJosh Stone <jistone@redhat.com>2009-06-10 15:50:04 -0700
committerJosh Stone <jistone@redhat.com>2009-06-10 15:50:04 -0700
commitcc76db234897ff09eda098e786643506517b2175 (patch)
treed98a47afce507df1ec0966b667f0a7f672330e8d /main.cxx
parent67146982d334acdb25f43da2a74c02fcabc3c45d (diff)
downloadsystemtap-steved-cc76db234897ff09eda098e786643506517b2175.tar.gz
systemtap-steved-cc76db234897ff09eda098e786643506517b2175.tar.xz
systemtap-steved-cc76db234897ff09eda098e786643506517b2175.zip
PR10260: Clean up all resources after init errors
When anything in systemtap_module_init fails, and we return non-zero, then the module load is aborted. The normal module unload path (systemtap_module_exit) is not even attempted, so we need to make sure that all partially-allocated resources are returned. Our timer callbacks for the gettimeofday subsystem are a classic example of this error. If we don't unregister the timers before aborting init, they will later be called and cause a kernel fault. We also were neglecting to free the percpu context. A memory leak is less harmful, but that's fixed now too.
Diffstat (limited to 'main.cxx')
0 files changed, 0 insertions, 0 deletions