summaryrefslogtreecommitdiffstats
path: root/runtime/staprun
Commit message (Collapse)AuthorAgeFilesLines
* runtime: switch to deferred STP_EXIT signallingFrank Ch. Eigler2010-04-091-8/+34
| | | | | | | | | | | | | | | The former code allowed stapio to have two concurrent commands sent toward the runtime at the same time: one from the main loop and another one from the signal handling thread. This is suspected to have caused occasional lockups. This new code switches to a deferred signal handling model, where the signal handling thread merely increments a counter, and the main loop monitors that count. Unfortunately, this currently involves switching the main loop's blocking /.ctl read into a nonblocking poll. * runtime/staprun/mainloop.c (pending_interrupts): New variable. (signal_thread): Increment it. (stp_main_loop): Check it.
* Fixed BZ 557165 by adding better error handling.David Smith2010-04-051-1/+3
| | | | | * runtime/staprun/mainloop.c (stp_main_loop): When a read error happens, quit instead of retrying (which can end up in an infinite loop).
* runtime: better staprun diagnostics for failed signature testsFrank Ch. Eigler2010-01-151-2/+8
| | | | * modverify.c (verify_module): Print some messages for verbose > 1.
* Merge branch 'master' of ssh://sources.redhat.com/git/systemtapDave Brolley2009-12-141-2/+4
|\
| * PR11020: Check switch_file global flag inside inner loop for busy scriptsMasami Hiramatsu2009-12-031-2/+4
| | | | | | | | | | * runtime/staprun/relay.c (reader_thread): Check switch_file thread flags inside inner read-write loop. And clear the flags after switching file.
* | Clean up NSS after errors occur during verification.Dave Brolley2009-12-141-0/+3
|/
* Regenerate autotools files using autoreconf to pick up latest Makefile.am ↵Dave Brolley2009-12-012-2/+4
| | | | changes.
* Merge branch 'master' of ssh://sources.redhat.com/git/systemtapDave Brolley2009-12-011-1/+1
|\
| * Change KERNEL_RELOC_SYMBOL to "_stext" on ppc32Anton Vorontsov2009-12-011-1/+1
| | | | | | | | | | | | | | | | Currently staprun fails at send_relocation_kernel(), this is because ppc32 doesn't have ".__start" symbol. I think we should use _stext, just as other arches. Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com>
* | Make sure system types are defined.Dave Brolley2009-12-012-5/+7
|/
* Fix build error when !HAVE_NSSWenji Huang2009-11-301-2/+2
| | | | | * runtime/staprun/staprun_funcs.c (assert_stap_module_permissions): Mark parameters unused.
* PR 10984 Additional Work. TOCTOU race checking access permissions before ↵Dave Brolley2009-11-272-51/+80
| | | | canonicalizing /lib/modules/KVER/systemtap.
* Merge branch 'master' of ssh://sources.redhat.com/git/systemtapDave Brolley2009-11-251-2/+0
|\
| * include modverify.h unconditionally.Dave Brolley2009-11-241-2/+0
| |
* | Improve error messages related to module signing.Dave Brolley2009-11-251-15/+7
|/
* PR 10976, 10984. Loading of signed modules (script module and uprobes) ↵Dave Brolley2009-11-241-61/+121
| | | | limited to members of stapusr.
* Relax restrictions on ownership and access permissions of signer's cert ↵Dave Brolley2009-11-121-0/+1
| | | | database.
* Use 'module_realpath' instead of overwriting 'path' in insert_module.Dave Brolley2009-11-101-18/+14
| | | | Update comments to clearly explain the security issues involved.
* Replace the use of the global variable 'modpath' in diagnosticDave Brolley2009-11-103-10/+14
| | | | | | | | messages within verify_it with the use of a 'module_name' parameter passed in. Add a comment in insert_module explaining why it's ok to overwrite the 'path' parameter with the canonicalized path.
* Don't reference global variable modpath in insert_module and its helpers.Dave Brolley2009-11-093-36/+81
| | | | | | | | | | | This allows insert_module to to be used for loading the signed uprobes.ko module. Allow the use of $$parms and $$return in uprobes based probes for unprivileged users. Re-add management of module signatures in the cache. Don't know why it was removed.
* Revert change which loads uprobes.ko using insert_module.Dave Brolley2009-11-051-3/+5
|
* PR 9973: Sign uprobes.ko when it is created and load it using insert_module.Dave Brolley2009-11-051-5/+3
| | | | Create home directory manually for stap-server.
* PR 10706 fixed by switching to unbuffered output.David Smith2009-11-031-1/+1
| | | | | * runtime/staprun/mainloop.c (stp_main_loop): Switched to unbuffered output (instead of line buffered output).
* Fix for bug 10866 (exit with rc != 0 on script ERRORs).Breno Leitao2009-11-032-11/+15
| | | | | | This patch just make the RC=1 when any output line starts with ERROR:. Also some minors error that was returning 0 instead of 1 were fixed.
* runtime shutdown errors: simplify, improve error specificityFrank Ch. Eigler2009-10-132-16/+15
| | | | | | | | * transport/control.c (*_cmd): Return -Ecodes rather than "-1" from file_operations callbacks. * staprun/ctl.c (init_ctl_channel): Return distinct error codes. * staprun/staprun.c (remove_module): Skip connection attempt to .ctl file; just do delete_module() with O_NONBLOCK.
* PR10761: pass -v's to final "staprun -d" if appropriateFrank Ch. Eigler2009-10-131-60/+54
| | | | | * mainloop.c (cleanup_and_exit): Remove non-BUG9788_WORKAROUND branch. Remove execlp branch. Pass -v to staprun-d if verbose.
* PR 10575. Improves running target commands.David Smith2009-10-131-18/+43
| | | | | | | * runtime/staprun/mainloop.c (signal_usr1): Renamed from signal_dontcare. Sets a new variable, usr1_interrupt. (start_cmd): Avoids pause() race condition by switching to blocking SIGUSR1, then waiting on SIGUSR1 with sigsuspend().
* build: fix !HAVE_NSS caseFrank Ch. Eigler2009-10-071-2/+1
| | | | | * staprun_funcs.c (assert_permissions): Move "check_signature_rc" variable inside #if HAVE_NSS.
* PR10724: staprun: simplify permissions checking logicCharley Wang2009-10-062-19/+19
| | | | | | Pending advice from Frank and Dave, changed check_permission to return void and renamed it to assert_permission. assert_permission simply returns if permissions are okay, and calls exit(-1) if there are any permissions errors.
* Fixed relay_old.c by providing ppoll().David Smith2009-09-182-9/+12
| | | | | | | * runtime/staprun/staprun.h: Put ppoll() declaration here (so that relay_old.c can use it). * runtime/staprun/relay.c (ppoll): Made ppoll() non-static so that relay_old.c can use it.
* Signal-based file switching support for old relayMasami Hiramatsu2009-09-161-14/+68
| | | | | | | | | | | * runtime/staprun/relay_old.c (switch_oldoutfile): New function for file switching. (process_subbufs): Use switch_oldoutfile. (reader_thread): Use ppoll() instead of poll() for receiving SIGUSR2 and switch output file when receiving a signal(SIGUSR2). (switchfile_handler): Send SIGUSR2 signal to reader threads for file switching. (init_oldrelayfs): Assign switchfile_handler to SIGUSR2.
* Signal-based file switching support for relay/ring buffer.Masami Hiramatsu2009-09-161-22/+61
| | | | | | | | | | * runtime/staprun/relay.c (switch_outfile): New function for file switching. (reader_thread): Don't assign empty_handler to SIGUSR2, and switch output file when receiving signal(SIGUSR2) on ppoll. (switchfile_handler): Send SIGUSR2 signal to reader threads for file switching. (init_relayfs): Assign switchfile_handler to SIGUSR2. * staprun.1.in: Add FILE SWITCHING BY SIGNAL section.
* Fix relay_old implementation of fsize_max and fnum_max.Masami Hiramatsu2009-09-091-2/+4
| | | | | | | | | | | | | | With old relayfs, out_fd is used only when non-bulk mode. However, open_oldoutfile and open_relayfs_files open files with fopen and set only percpu_tmpfile. This will cause a problem with -S option, that out_fd will be closed when the file size reaches fsize_max and new fd will be opened only on percpu_tmpfile. So, out_fd should be synchronized with percpu_tmpfile. * runtime/staprun/relay_old.c (open_oldoutfile): Set fd of output file to out_fd[cpu]. (open_relayfs_files): Ditto.
* rc = 0 should be return 0 for database not ownder by root.Dave Brolley2009-09-041-1/+1
|
* Allow process begin/end probes for unprivileged users.Dave Brolley2009-09-031-9/+1
| | | | | | | | | | | | | | | | | 2009-09-03 Dave Brolley <brolley@redhat.com> * tapsets.cxx (visit_cast_op): Don't disallow unprivileged users. Annotate synthesized function with /* unprivileged */. * tapset-utrace.cxx (register_tapset_utrace): Call allow_unprivileged for process begin and end probes. * translate.cxx (translate_pass): Generate '#define STP_PRIVILEGED 1' unless --unprivileged was specified. * runtime/transport/transport.c: Don't define _stp_unprivileged_user. * runtime/task_finder.c (__stp_utrace_attach_match_filename): Check that _stp_uid equals the task euid when STP_PRIVILEGED is not defined. (stap_start_task_finder): Likewise. * runtime/staprun/staprun.c (insert_stap_module): Don't generate module option _stp_unprivileged_user.
* Add 'unused' attribute to module_data and module_size arguments of ↵Dave Brolley2009-08-111-2/+4
| | | | check_permissions.
* PR10506 experiment: use /sbin/insmod for uprobes.ko loadingFrank Ch. Eigler2009-08-101-2/+7
| | | | * runtime/staprun/staprun.c (enable_uprobes): insmod, not insert_module().
* It is not an error or warning if the local database of authorized signingDave Brolley2009-08-101-0/+5
| | | | certificates does not exist. It just means that the signed module is untrusted.
* 2009-08-06 Dave Brolley <brolley@redhat.com>Dave Brolley2009-08-065-143/+118
| | | | | | | | | | | | | | | | | | | * modverify.c (staprun.h): #include it. (verify_it): Now accepts module data and signature data as arguments. Don't open and read the signature here. Don't read the module here. (verify_module): Now accepts module data as argument. Read the signature once here. * modverify.h (verify_module): Now accepts module data as argument. * staprun.c (main): Don't call check_permissions here. * staprun.h (check_permissions): Prototype removed. * staprun_funcs.c (check_permissions): Now static. Accepts module data as argument. Pass module data to check_signature. (insert_module): Canonicalize the module path early here. Call check_permissions here, passing it the mapped module data. (check_signature): Now accepts module data as argument. Pass the module data to verify_module. (check_path): Use the already-canonicalized module path.
* Fix compile error when not HAVE_NSS with staprun.Maran2009-08-051-1/+1
| | | | | | | * runtime/staprun/staprun_funcs.c (check_permissions): Declare check_signature_rc outside HAVE_NSS block. Signed-off-by: Mark Wielaard <mjw@redhat.com>
* Merge branch 'master' of git://sources.redhat.com/git/systemtapDave Brolley2009-08-045-0/+7
|\ | | | | | | | | | | Conflicts: cache.cxx
| * PR10204: Place userspace markers in systemtap itselfKent Sebastian2009-07-315-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | * cache.cxx (add_to_cache,clean_cache): add static markers * main.cxx (main): likewise * runtime/staprun/common.c (send_request): likewise * runtime/staprun/mainloop.c (stp_main_loop): likewise * runtime/staprun/staprun.c (remove_module): likewise * runtime/staprun/staprun.h: include sdt.h * runtime/staprun/staprun_funcs.c (insert_module): likewise * util.cxx (stap_system): likewise * tapset/stap_staticmarkers.stp: new file
* | Merge branch 'master' of git://sources.redhat.com/git/systemtapDave Brolley2009-06-225-38/+46
|\|
| * Fix on-file flight recorder mode bugs on old kernel.Masami Hiramatsu2009-06-194-35/+42
| | | | | | | | | | | | | | | | * runtime/staprun/common.c (make_outfile_name): Moved from relay.c, fix not to open /dev/null.XXX output files, and add 'bulk' argument for bulkmode. * runtime/staprun/relay.c (make_outfile_name): Moved to common.c. * runtime/staprun/relay_old.c (open_oldoutfile): Fix to use fopen() and store FILE * to percpu_tmpfile[cpu].
| * Merge commit 'origin/master' into pr7043David Smith2009-06-111-1/+14
| |\
| * \ Merge commit 'origin/master' into pr7043David Smith2009-05-218-100/+999
| |\ \ | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: runtime/print.c runtime/transport/transport.c runtime/transport/transport_msgs.h
| * | | Renamed STP_OLD_TRANSPORT to STP_TRANSPORT_VERSION.David Smith2009-04-022-3/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2009-04-02 David Smith <dsmith@redhat.com> * runtime.h: Defines STP_TRANSPORT_VERSION instead of STP_OLD_TRANSPORT. * staprun/staprun.h (STP_OLD_TRANSPORT): Ditto. * print.c: Changed STP_OLD_TRANSPORT to STP_TRANSPORT_VERSION. * staprun/mainloop.c (stp_main_loop): Ditto. * transport/transport.c: Ditto. * transport/transport.h: Ditto. * transport/transport_msgs.h: Ditto. * transport/utt.h: Ditto.
* | | | Only sign modules if --unprivileged is specified.Dave Brolley2009-06-112-6/+2
| | | | | | | | | | | | | | | | | | | | | | | | Don't generate an error message for unsigned modules. Make sure module signature exists before attempting to copy to the cache. Allow timer p[robes for unprivileged users.
* | | | Merge branch 'master' of git://sources.redhat.com/git/systemtapDave Brolley2009-05-221-1/+14
|\ \ \ \ | | |_|/ | |/| |
| * | | Restore staprun's support for REAL_UID/GIDJosh Stone2009-05-221-1/+14
| | |/ | |/| | | | | | | | | | This is needed for run-stap so that stapio and all child processes can run as the originally invoking user instead of root.