summaryrefslogtreecommitdiffabout
Side-by-side diff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--COPYING2
-rw-r--r--NEWS.xml3
-rw-r--r--configure.ac2
-rw-r--r--src/process.cc14
4 files changed, 13 insertions, 8 deletions
diff --git a/COPYING b/COPYING
index 873f196..8ceaf0a 100644
--- a/COPYING
+++ b/COPYING
@@ -1,5 +1,5 @@
-Copyright (c) 2004 Klever Group (http://www.klever.net/)
+Copyright (c) 2004-2006 Klever Group (http://www.klever.net/)
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
diff --git a/NEWS.xml b/NEWS.xml
index f9be239..2041a58 100644
--- a/NEWS.xml
+++ b/NEWS.xml
@@ -1,6 +1,9 @@
<?xml version="1.0" encoding="us-ascii"?>
<news>
+ <version version="0.2.2" date="November 8th, 2006">
+ <ni>Do not try to set unspecified group</ni>
+ </version>
<version version="0.2.1" date="August 1st, 2004">
<ni>do not act -e when doing -r</ni>
<ni>proper handling of <kbd>ProcessName</kbd> on <kbd>FreeBSD</kbd></ni>
</version>
diff --git a/configure.ac b/configure.ac
index eed8e97..a0e01e4 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,5 +1,5 @@
-AC_INIT([dudki], [0.2.1], [dudki-bugs@klever.net])
+AC_INIT([dudki], [0.2.2], [dudki-bugs@klever.net])
AC_CONFIG_SRCDIR([src/dudki.cc])
AC_CONFIG_HEADER([config.h])
AM_INIT_AUTOMAKE([dist-bzip2])
diff --git a/src/process.cc b/src/process.cc
index 96c874f..6d3b2a2 100644
--- a/src/process.cc
+++ b/src/process.cc
@@ -94,14 +94,16 @@ void process::launch(const string& id,configuration& config) {
if(!p) {
// child
try {
setsid();
- if(user.empty()) {
- if((getgid()!=gid) && setgid(gid))
- throw runtime_error(string(__PRETTY_FUNCTION__)+": failed to setgid()");
- }else{
- if(initgroups(user.c_str(),gid))
- throw runtime_error(string(__PRETTY_FUNCTION__)+": failed to initgroups()");
+ if(!group.empty()) {
+ if(user.empty()) {
+ if((getgid()!=gid) && setgid(gid))
+ throw runtime_error(string(__PRETTY_FUNCTION__)+": failed to setgid()");
+ }else{
+ if(initgroups(user.c_str(),gid))
+ throw runtime_error(string(__PRETTY_FUNCTION__)+": failed to initgroups()");
+ }
}
if(!chroot.empty()) {
if(::chroot(chroot.c_str()))
throw runtime_error(string(__PRETTY_FUNCTION__)+": failed to chroot()");