diff options
author | Rainer Gerhards <rgerhards@adiscon.com> | 2008-12-18 13:42:56 +0100 |
---|---|---|
committer | Rainer Gerhards <rgerhards@adiscon.com> | 2008-12-18 13:42:56 +0100 |
commit | 197d980f5b1fabef40d908f2aaf51c5be184c0e2 (patch) | |
tree | bce582eaddc95334e22634744af8482b7f272467 | |
parent | db23c5e79a875da684c3828dbc0c5acda8b16083 (diff) | |
parent | 3c236053cf87a16dfd7449f729e477dffd6e2fae (diff) | |
download | rsyslog-197d980f5b1fabef40d908f2aaf51c5be184c0e2.tar.gz rsyslog-197d980f5b1fabef40d908f2aaf51c5be184c0e2.tar.xz rsyslog-197d980f5b1fabef40d908f2aaf51c5be184c0e2.zip |
Merge branch 'v2-stable' into debian_lenny
-rw-r--r-- | ChangeLog | 9 | ||||
-rw-r--r-- | omfile.c | 42 | ||||
-rw-r--r-- | plugins/ompgsql/ompgsql.c | 4 |
3 files changed, 33 insertions, 22 deletions
@@ -679,7 +679,14 @@ Version 3.10.0 (rgerhards), 2008-01-07 - much cleaner code due to new objects and removal of single-threading mode --------------------------------------------------------------------------- -Version 2.0.6 V2-STABLE (rgerhards), 2008-??-?? +Version 2.0.7 V2-STABLE (rgerhards), 2008-??-?? +- bugfix: "$CreateDirs off" also disabled file creation + Thanks to William Tisater for analyzing this bug and providing a patch. + The actual code change is heavily based on William's patch. +- bugfix: memory leak in ompgsql + Thanks to Ken for providing the patch +--------------------------------------------------------------------------- +Version 2.0.6 V2-STABLE (rgerhards), 2008-08-07 - bugfix: memory leaks in rsyslogd, primarily in singlethread mode Thanks to Frederico Nunez for providing the fix - bugfix: copy&paste error lead to dangling if - this caused a very minor @@ -385,26 +385,30 @@ static void prepareFile(instanceData *pData, uchar *newFileName) */ if(makeFileParentDirs(newFileName, strlen((char*)newFileName), pData->fDirCreateMode, pData->dirUID, - pData->dirGID, pData->bFailOnChown) == 0) { - pData->fd = open((char*) newFileName, O_WRONLY|O_APPEND|O_CREAT|O_NOCTTY, - pData->fCreateMode); - if(pData->fd != -1) { - /* check and set uid/gid */ - if(pData->fileUID != (uid_t)-1 || pData->fileGID != (gid_t) -1) { - /* we need to set owner/group */ - if(fchown(pData->fd, pData->fileUID, - pData->fileGID) != 0) { - if(pData->bFailOnChown) { - int eSave = errno; - close(pData->fd); - pData->fd = -1; - errno = eSave; - } - /* we will silently ignore the chown() failure - * if configured to do so. - */ - } + pData->dirGID, pData->bFailOnChown) != 0) { + return; /* we give up */ + } + } + /* no matter if we needed to create directories or not, we now try to create + * the file. -- rgerhards, 2008-12-18 (based on patch from William Tisater) + */ + pData->fd = open((char*) newFileName, O_WRONLY|O_APPEND|O_CREAT|O_NOCTTY, + pData->fCreateMode); + if(pData->fd != -1) { + /* check and set uid/gid */ + if(pData->fileUID != (uid_t)-1 || pData->fileGID != (gid_t) -1) { + /* we need to set owner/group */ + if(fchown(pData->fd, pData->fileUID, + pData->fileGID) != 0) { + if(pData->bFailOnChown) { + int eSave = errno; + close(pData->fd); + pData->fd = -1; + errno = eSave; } + /* we will silently ignore the chown() failure + * if configured to do so. + */ } } } diff --git a/plugins/ompgsql/ompgsql.c b/plugins/ompgsql/ompgsql.c index 1d7b2eb7..03a2b79f 100644 --- a/plugins/ompgsql/ompgsql.c +++ b/plugins/ompgsql/ompgsql.c @@ -167,12 +167,12 @@ rsRetVal writePgSQL(uchar *psz, instanceData *pData) dbgprintf("writePgSQL: %s", psz); /* try insert */ - PQexec(pData->f_hpgsql, (char*)psz); + PQclear(PQexec(pData->f_hpgsql, (char*)psz)); if(PQstatus(pData->f_hpgsql) != CONNECTION_OK) { /* error occured, try to re-init connection and retry */ closePgSQL(pData); /* close the current handle */ CHKiRet(initPgSQL(pData, 0)); /* try to re-open */ - PQexec(pData->f_hpgsql, (char*)psz); + PQclear(PQexec(pData->f_hpgsql, (char*)psz)); if(PQstatus(pData->f_hpgsql) != CONNECTION_OK) { /* re-try insert */ /* we failed, giving up for now */ reportDBError(pData, 0); |