summaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
...
* fatal(): Close SF bug #110401 and potential local security hole bybwarsaw2000-08-021-2/+2
| | | | | | formatting user supplied input. Also added newlines to both stderr and syslog output for more consistent formatting. Reported by Stan Bubrouski.
* fatal(): When not running as a CGI (e.g. when running at the mailbwarsaw2000-05-221-0/+5
| | | | | | wrapper), simply print the log_entry information to stderr. Most MTAs will include this in their bounce message, which will be helpful for debugging.
* Update the copyright lines to include the years 1999 & 2000.bwarsaw2000-03-216-6/+6
|
* Get the gid_t type from configure.bwarsaw1999-12-123-3/+6
|
* check_caller(): Get the gid_t type from configure. Also use %ld tobwarsaw1999-12-121-4/+4
| | | | print the gid values.
* Invoke Python with -S option, which avoids the "import site". Thisbwarsaw1999-10-291-10/+13
| | | | | speeds up invocation of the executable considerably by eliminating tons of stats and other computation.
* fatal() no longer has "const char*" as third arg prototype. Didn'tbwarsaw1999-07-121-1/+7
| | | | | | | 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
* fatal() no longer has "const char*" as third arg prototype. Didn'tbwarsaw1999-07-121-1/+1
| | | | work well with our own vsnprintf().
* Add magic to include our own vsnprintf if the OS is missing one.bwarsaw1999-07-121-5/+10
|
* An implementation of vsnprintf() ripped from GNU screen 3.7.6's misc.cbwarsaw1999-07-121-0/+126
| | | | | | | | | file. Known operating systems missing vsnprintf(): Solaris 2.5 This code is GPL'd but not copyright the FSF. RMS says its okay to use, but should be kept in a separate file permanently. I can only test that it compiles correctly, but cannot test its proper operation on systems that are missing vsnprintf().
* fatal(): Use vsnprintf() to avoid potential buffer overflowbwarsaw1999-07-021-2/+4
| | | | vulnerability (PR#72)
* Undo, previous checkin was a mistake (I'm still only beginning tohmeland1999-06-131-11/+8
| | | | experiment with the addaliases stuff).
* Create(): Do ValidateEmail(admin) before trying to actually createhmeland1999-06-131-8/+11
| | | | | anything, to disallow bin/newlist creating lists with bogus admin addresses.
* More changes to make syslog() work on OSes where it isn't part of thehmeland1999-06-111-1/+2
| | | | | | | standard libraries. This fix has been verified to work on SCO OpenServer 5, which was the OS for which this change was originally needed. The previous attempt at a fix, stolen from GNU sh-utils, proved insufficient.
* Stole GNU sh-utils-1.16 configure.in code to check for syslog()hmeland1999-05-232-1/+5
| | | | | | | | 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().
* run_script(): When filtering out PYTHONPATH from environment, wrongbwarsaw1999-04-091-1/+1
| | | | | indices were used. Found by Alexander (Leo) Bergolth <leo@strike.wu-wien.ac.at>
* Take CGIEXT from configure scriptbwarsaw1999-02-281-1/+1
|
* check_parent(): This wasn't being used anymore, so it has beenbwarsaw1999-02-271-28/+5
| | | | | | removed. We don't limit MTAs to sendmail anyway. main(): Use the proper exitcode when calling fatal().
* main(): Remove setuid() call. We don't use UIDs in anybwarsaw1999-02-271-6/+1
| | | | | | permission/security sense so this is unnecessary. Also, if run_script() returns, use its return value as the exitcode for fatal().
* fatal(): now takes a new second argument which is the integer code tobwarsaw1999-02-271-9/+10
| | | | | | | | | | 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.
* fatal(): now takes a new second argument which is the integer code tobwarsaw1999-02-271-3/+13
| | | | | | | | use in the exit() call. Useful for debugging. Added #defines for use with fatal(). Function declarations should be extern'd.
* Hi, everybody :-)hmeland1999-02-252-3/+3
| | | | | | | 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... ]
* (logident): extern needed to reference this global from one of thebwarsaw1999-02-251-0/+3
| | | | wrappers
* main(): Removed the (I think) useless calls to setuid().bwarsaw1999-02-191-4/+0
|
* check_caller(): Call getgid() once and cache its value.bwarsaw1999-02-191-2/+15
| | | | | | | | | | | 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.
* VERSION is no longer set in configure because it's too hard tobwarsaw1999-01-151-2/+0
| | | | | | | | | | | | propagate version string changes to the public (you have to autoreconf, then reconfigure and reinstall). Now, VERSION is set directory in Defaults.py.in and the Release.py script updates that file directly. Now we just need to run ./config.status and do a re-install. I hope this will make things easier. I'm also bumping the version to 1.0b8, so I can do a release tomorrow.
* Somewhat kludgy changes to make debugging mismatching CGI gid's easierbwarsaw1999-01-074-1/+36
| | | | | | | | | | | | | | | | | | | | 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".
* Get rid of $< variables in command lines. They don't work for allbwarsaw1998-12-181-4/+4
| | | | versions of make, and aren't really necessary anyway.
* Make common.o depend on the generated Makefile in this directory.bwarsaw1998-12-161-1/+1
| | | | | | That way, if the admin re-runs configure (or config.status), possibly changing the CGI or Mail GID's, the wrappers will get automatically recompiled.
* make finishbwarsaw1998-10-201-4/+20
|
* All these changes are for implemented integrated pipermail based archives.cotton1998-10-091-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Original patches are from The Dragon de Monsyne with the following changes: -added support for private archives as well as public -added support for archiving daily and weekly -made archiving happen in real time -replaced use of pipermail's BSDBDatabase with homegrown python version -took out the need for DocumentTemplate here's a listing of changed files and relevant changes: Makefile.in - added public_html/archives to installdirs Mailman/Archiver.py - changed ArchiveMail to do real time archiving Mailman/Defaults.py.in - added archive frequency and and archive url extension variables Mailman/MailList.py - changed .Save() to alter perms on public vs. private archives Mailman/htmlformat.py - changes directly from The Dragon do Monsyne's patches. I don't know what they are exactly, but all the cgi's seem to work fine, so I assume they are OK. Mailman/versions.py - changes to add archiving based variables back to the list Mailman/Cgi/private - changed to make it work with default installation and made background white on login page src/Makefile.in - changes to make all wrappers setuid mailman: since various processes may access an archive, and the archiving mechanism uses "chmod", all archives must be owned by mailman, so all wrappers need to be owned by and setuid mailman added files: Mailman/HyperArch.py - from The Dragon de Monsyne with changes made noted above Mailman/HyperDatabase.py - the replacement for pipermail.BSDBDatabase scott
* CGIEXT: Leave macro in (for the really needy), but don't fill in itsbwarsaw1998-08-051-1/+1
| | | | value from autoconf
* Minor formatting changesbwarsaw1998-08-052-2/+3
|
* Minor formatting changesbwarsaw1998-08-052-5/+2
|
* Added --with-cgi-ext option for specifying an extension on the cgi-binbwarsaw1998-08-031-2/+4
| | | | wrapper scripts. Apparently the Roxen server requires this.
* prefixdir isn't used anywherebwarsaw1998-07-211-1/+0
|
* Put only $prefix on PYTHONPATH, not $prefix/Mailman. This means thatbwarsaw1998-06-191-1/+1
| | | | only the package path will be used from now on.
* Change to the way the `real' (i.e Python) CGI program gets invoked.bwarsaw1998-06-191-2/+13
| | | | | | | | | | Now the wrapper simply calls the Python written scripts/driver program and passes the module name as argv[1]. Eliminates the (unchecked in) need for symbolic links. This file still gets compiled into a number of different executables, each named after the module that gets imported. This could be changed to use symlinks later.
* Added Emacs C style cruftbwarsaw1998-06-131-0/+7
|
* strerror(): Wrap in standard autoconf generated HAVE_STRERROR ifdefs.bwarsaw1998-06-051-25/+23
| | | | Slight reformatting. Moved to top of file.
* I added a strerror() function to common.h, wrapped in an #ifdef forviega1998-06-041-0/+25
| | | | | | | | 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 :)
* check_caller(): Removed test for UID. We now only check for GIDbwarsaw1998-06-014-18/+13
| | | | matches. Fix the prototype, remove macros from C files.
* Get rid of MAIL_UID and CGI_UIDbwarsaw1998-06-011-11/+7
| | | | common.o should also depend on common.h
* I changed the "wrong UID/GID" error messages that go to syslog to makeviega1998-05-311-5/+7
| | | | | | 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.
* Ignore the Makefilebwarsaw1998-05-261-0/+12
|
* Several important changes.bwarsaw1998-05-265-232/+323
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* Makefile is no longer necessary, since it will be generated by thebwarsaw1998-05-261-71/+0
| | | | configure script from the new Makefile.in file.
* Autoconf template for this directory's Makefile.bwarsaw1998-05-261-0/+124
|
* Fixed a typo in the zipcode.viega1998-05-264-4/+4
|
* Added copyright notices to all source files where I am legally entitled to ↵viega1998-05-254-6/+82
| | | | | | | do so. Added a copy of the GNU GPL. Added information about mailman-users in README, and reworded some text in there (made the credits less verbose... perhaps they should move to a credits file?)