| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
| |
artifacts are removed, as is the C files which we will no longer need.
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
| |
GNU version.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
of numeric ids. Initial idea and patch by Todd Vierling, fleshed out
by Barry.
Specific changes here:
check_caller(): The second argument now is a const char* instead of a
GID_T, since it takes a group name not an id.
Also, significantly rewrote the error messages that get logged when a
group mismatch (or other error) occurs. Hopefully now when errors do
occur, they'll be much easier to understand because they'll actually
give the suggested configure options to fix the problem.
|
| | |
|
| |
|
|
|
|
|
|
| |
literals together with ##. That's not what ## is for; ## is to glue together
stringified versions of tokens. The fact that it worked was a bug in GCC.
Thanx to Jeff Dairiki for reminding me to take care of this.
This fixes SF bug #227694.
|
| |
|
|
| |
is incorrect. This closes SF bug #121185
|
| | |
|
| |
|
|
|
|
| |
We now discard $PYTHONHOME and $PATH as well as the previously
discarded $PYTHONPATH (which we later hand craft). Just a bit of
extra paranoia.
|
| |
|
|
|
|
| |
formatting user supplied input. Also added newlines to both stderr
and syslog output for more consistent formatting. Reported by Stan
Bubrouski.
|
| |
|
|
|
|
| |
wrapper), simply print the log_entry information to stderr. Most MTAs
will include this in their bounce message, which will be helpful for
debugging.
|
| | |
|
| |
|
|
| |
print the gid values.
|
| |
|
|
|
| |
speeds up invocation of the executable considerably by eliminating
tons of stats and other computation.
|
| |
|
|
|
|
|
| |
work well with our own vsnprintf().
When the system doesn't have vsnprintf() -- as determined by autoconf
-- provide a definition for the one our own vsnprintf.c
|
| |
|
|
| |
vulnerability (PR#72)
|
| |
|
|
|
|
|
|
| |
outside of the default libs.
Ran autoconf (from autoconf-2.13) to update configure.
src/common.[ch] now has #ifdefs around syslog-using code -- thus,
Mailman will compile, but _without any syslog calls_ if configure
couldn't find syslog().
|
| |
|
|
|
| |
indices were used. Found by Alexander (Leo) Bergolth
<leo@strike.wu-wien.ac.at>
|
| |
|
|
|
|
|
|
|
|
| |
use in the exit() call. Useful for debugging.
check_caller(): Use GID_MISMATCH as fatal exit code.
run_script(): If setregid() returns !0, use SETREGID_FAILURE as fatal
exit code. Also, it is always an error for execve() to return.
Return EXECVE_FAILURE from this function.
|
| |
|
|
|
|
|
| |
The extern declaration of logident belongs in common.h, not common.c.
[ Besides, I needed a pretty safe thing to patch for testing that I
can actually do CVS checkins properly. Hopefully this turns out
right... ]
|
| |
|
|
| |
wrappers
|
| |
|
|
|
|
|
|
|
|
|
| |
run_script(): Use setregid() copy the effective gid into the real
gid. This works around a problem on some Linux versions where the
effective gid was not being inherited across popen() calls. Should
not affect other systems.
Note: this is wrapped in a HAVE_SETREGID determined by configure. If
the same affected machines don't have this call (unlikely?) then they
can still be broken.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
to figure out.
common.c now sports a global variable running_as_cgi which, when true
causes fatal() to output some mildly more helpful HTML in addition to
the syslog entry. Since this usually only occurs when the site admin
is installing Mailman, this helpful HTML should give a better clue as
to what's going wrong, rather than an unhelpful Web server message and
syslog entry alone.
Naturally, main() in cgi-wrapper.c sets running_as_cgi to 1; it is
initialized to 0 so as to not upset mail-wrapper.c.
Finally, because I think this is a kludge, I've wrapped this all in an
#ifdef HELPFUL, and set Makefile.in to turn this on by default. My
thought is that for some future version, if the site admin specifies
--with-cgi-gid to configure, that proves they're somewhat clueful, and
we'd default the HELPFUL macro to "off".
|
| | |
|
| | |
|
| | |
|
| |
|
|
| |
only the package path will be used from now on.
|
| |
|
|
| |
Slight reformatting. Moved to top of file.
|
| |
|
|
|
|
|
|
| |
NEED_STRERROR.
I looked at configure.in, I think I could add the right stuff.
However, I'd need to download autoconf and read the docs to generate
the configure script, so I think I'll just leave this one to Barry for
the time being, if he doesn't mind :)
|
| |
|
|
| |
matches. Fix the prototype, remove macros from C files.
|
| |
|
|
|
|
| |
them more explicit. Both myself and my test user got confused the
first time, and tried to reconfigure with the GID it was already
configured with.
|
|
|
1. For mail-wrapper.c and cgi-wrapper.c, most common routines have
been moved to common.c. While there were some differences in the
way these two wrappers worked (most notably in the error handling
and reporting when UID's and GID's didn't match), they were easily
merged. Fatal errors now always syslog and exit(1).
2. The exec*() call for running the new process has been changed and
made consistent. For improved security, the absolute path to the
Python interpreter (as discovered by configure) is compiled into
these programs, and the environment variable PYTHONPATH is set to
include only the absolute path the the installed Mailman package
($prefix/Mailman). Scripts are invoked by exec'ing the Python
interpreter with the first argument being the absolute path to the
script to run, along with any additional arguments on argc/argv.
See the function run_script() in common.c for details.
3. alias-wrapper.c has not yet been fully merged. I gathered from Ken
that it doesn't work completely well anyway.
4. check_caller() in common.c still checks the gid, but as we
discussed before, this may be redundant. I wanted one check-in
with a history of this feature first though.
5. Added an Emacs turd at the end of all files so that the C code will
be edited using Python's standard C style. Reformatted existing
code.
6. Removed pseudo-log history from comments at top of files.
|