Commit Graph
64 Commits
Author SHA1 Message Date
Steve GilvarryandClaude Opus 5 ba49bbb33c fix: make the Perl scripts' taint-safe PATH configurable
The scripts run under -T, so they cannot trust the caller's PATH and set
their own. Sixteen of them hardcoded /bin:/usr/bin:/usr/local/bin, which
assumes everything they shell out to lives under /usr or /usr/local.

ZoneMinder::General::findDbCommand looks for a database client on that
PATH, and zmupdate.pl and zmcamtool.pl run what it finds. So an install
whose client sits anywhere else cannot apply schema changes:

  sh: mysql: command not found
  Command 'mysql -u'zmuser' ... ' exited with status: 127

even with the client on the caller's PATH. Homebrew on Apple Silicon is
the case that surfaced it - the client is in /opt/homebrew/bin - but a
--prefix=/opt install on Linux has the same shape, as does anything that
keeps its database client outside the FHS locations.

Replaced the literal with @ZM_SCRIPT_PATH@, defaulting to the same three
directories plus wherever cmake actually found a client, and overridable
for packagers who want to pin it. Warn at configure time when no client
is found at all, since that failure otherwise appears much later and
says something unrelated.

Nothing changes for an install whose client is already under /usr/bin:
the directory is only appended when it is not in the list, so the
default stays exactly as it was.

Memory.pm is deliberately left alone. It has a narrower PATH of
/bin:/usr/bin, and the only command it runs is uname through an absolute
path from ZM_PATH_UNAME, so it does not need widening.

Verified on macOS across the three cases: with the client in
/opt/homebrew/bin the directory is appended; -DZM_SCRIPT_PATH= is
respected verbatim; and pointing detection at /usr/bin/mariadb leaves
the default untouched. Build clean, suite 146 cases.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01B5KL9Xbi7K5aGsauLtd8tG
2026-09-13 13:04:59 +10:00
Alejandro Criado-Pérez 871bf1772f fix: messages 2023-07-05 01:03:48 +02:00
Isaac Connor 0850e0db70 Remove Enabled test, replace with Capturing and Recording tests 2022-03-21 15:56:16 -04:00
Isaac Connor 0785e3571c code style, remove duplicated code. 2022-03-08 09:06:31 -05:00
Isaac Connor 86f393565e Remove Function references and swap with appropriate Capturing, Analysing, Recording 2022-01-27 13:42:31 -05:00
Isaac Connor 8d06175024 Rework to use ZoneMinder::Monitor class. Simplify loadMonitors and get rid of loadMonitor. Add in ServerId change handling. 2022-01-12 23:07:48 -05:00
Isaac Connor ef13c84d8b fix zmtrigger. Need {} 2021-12-12 17:01:12 -05:00
Isaac Connor ed360348ef spacing, remove dead code. If Monitor Function becomes None, skip it 2021-12-10 15:36:47 -05:00
Isaac Connor 30dfadcbf1 Add some parenthesis and use logic and/or install of binary 2021-04-07 14:15:55 -04:00
Isaac Connor ec8e0f5997 replace while(1) with while(not zm_terminate) so that these scripts exit cleanly 2021-03-17 13:09:54 -04:00
Isaac Connor da99426535 if monitor is not found call loadMonitors to make sure it isn't new 2020-11-13 10:40:55 -05:00
Isaac Connor 7b764d04d3 Fix use of next when it should be return. Improve some logging of errors. 2020-11-11 17:40:31 -05:00
Isaac Connor 076d649189 Include Record Monitors in zmtrigger 2020-11-11 16:12:30 -05:00
Isaac Connor 38555b0dd4 strip leading and trailing " in trigger message. Accept a space instead of a + in enable/disable commands to match on/off 2020-04-04 11:08:19 -04:00
Isaac Connor a9ed5c1158 escape column names for mysql8. Fixes #2814 2020-01-21 16:53:43 -05:00
Isaac Connor 766a59884d Don't hard code perl path. Use PERL_EXECUTABLE cmake var 2019-09-23 12:54:27 -04:00
Isaac Connor 3368f94c1a Add code to handleDelay to cancel identical delayed actions. Fixes #2619 (#2681) 2019-08-08 14:38:27 -04:00
Isaac Connor 2e9d72ed63 spacing and extra () 2019-08-08 14:11:24 -04:00
Isaac Connor 88e148068e Logging and whitespace 2018-12-20 13:56:57 -05:00
Andrew Bauer 2fbe1be02b implement loadMonitor sub (#2244)
* implement loadMonitor sub

* remove carriabe returns from Info, Warning, Debug statements
2018-10-10 14:27:05 -04:00
Andrew Bauer b533c8b257 don't zmMemInvalidate when reloading monitors (#2225)
* remove call to zmMemVerify when reloading monitors

* need to call zmMemVerify to attach to the mem handle
2018-09-28 13:35:42 -04:00
Isaac Connor b3984ea2da Merge branch 'master' into storageareas 2017-07-14 10:38:20 -04:00
Isaac Connor a07f8961d1 add another zmDbConnect at the bottom of the while(1) loop which will ping and reconnect to db if neccessary. 2017-07-14 10:30:12 -04:00
Isaac Connor d5a4aaca5d fix braces, spacing, move pod docs to bottom 2017-07-14 10:28:31 -04:00
Isaac Connor 7ab6818fa0 Merge branch 'sanitize_image_path' of https://github.com/knnniggett/ZoneMinder into storageareas_sanitize 2017-01-25 17:14:30 -05:00
Isaac Connor a5cdfd2932 call loadMonitors at the beginning. Otherwise we may not know about a monitor while handling a message from it. 2017-01-12 13:03:53 -05:00
Isaac Connor d9ce1a68c6 restore defaults 2017-01-12 12:56:55 -05:00
Isaac Connor 65f7350313 remove debug stautement 2017-01-12 12:55:27 -05:00
Isaac Connor 42484f7680 switch quotes, load monitors at the beginnign 2017-01-12 12:54:40 -05:00
Isaac Connor 7502b81064 zmMemVerify now checks valid, so don't need to do it again. 2017-01-10 15:32:38 -05:00
Isaac Connor 04f66917ae Merge branch 'fix_mmap_leak' into storageareas 2017-01-10 15:29:54 -05:00
Isaac Connor 7ddd5359d0 zmMemVerify attaches, so we need to zmMemInvalidate even if the shared data is no good 2017-01-10 15:09:30 -05:00
Isaac Connor 4d84387807 Merge branch 'fix_mmap_leak' into work 2017-01-10 14:22:58 -05:00
Isaac Connor a66e9e45a2 merge a fix from storageareas that adds a test for the shared data being valid and reloads the monitors if it can't reconnect 2017-01-10 14:22:42 -05:00
Isaac Connor d2ff6701f4 test 2017-01-10 13:53:02 -05:00
Isaac Connor b3c5f4622f revert knnniggett's zmMemDetach changes 2017-01-10 12:56:19 -05:00
Isaac Connor 5ae34a7561 Merge branch 'master' into storageareas 2017-01-02 09:39:10 -05:00
Andy Bauer 254fcbcef7 update gpl 2 mailing address in source files 2016-12-26 09:23:16 -06:00
Isaac Connor c27d0270dc Merge branch 'knnniggett-zmMemDetach' into storageareas 2016-12-20 15:40:14 -05:00
Andy Bauer c6368c4a1a replace zmMemInvalidate with zmMemDetach 2016-12-20 13:49:07 -06:00
Isaac Connor f0a307e082 Merge branch 'storageareas' of github.com:ZoneMinder/ZoneMinder into storageareas
Conflicts:
	distros/ubuntu1504_cmake/control
2016-03-29 11:53:17 -04:00
Kyle Johnson b9085cea64 Fix issue where programs are installed in unexpected paths.
For example, on freebsd, sudo is in /usr/local/bin, and as things
were pre-this commit, sudo wasn't being found.
2016-03-11 14:28:16 -07:00
Andrew Bauer 4606d2fbca Update zmtrigger.pl.in
mention the %Q placholder when using showtext
2016-03-10 10:13:38 -06:00
Andrew Bauer 0fce33b2d3 one too many curly brackets 2016-02-22 06:59:14 -06:00
Andy Bauer a2e06ed70c Prevent zmtrigger from crashing when memory handles change 2016-02-21 17:55:04 -06:00
Isaac Connor 826a22a2a8 add missing . 2016-02-19 11:07:06 -05:00
Isaac Connor 3b07b56400 Use more descriptive names for the channels 2016-02-19 11:05:55 -05:00
Andy Bauer 66c66106f5 Process off+time delay condition 2016-01-15 20:31:31 -06:00
Isaac Connor 5a363273a2 Merge branch 'master' into multi-server
Conflicts:
	distros/ubuntu1504/changelog
2015-07-16 16:37:44 -04:00
Andrew Bauer 10adae3696 Merge pull request #941 from ZoneMinder/trigger_on_space
add space instead of + to handle old Axis cameras
2015-07-16 13:09:36 -05:00