[Nagios-devel] Erroneous use of getcwd on lib/nspath.c

Support forum for Nagios Core, Nagios Plugins, NCPA, NRPE, NSCA, NDOUtils and more. Engage with the community of users including those using the open source solutions.
Locked
Guest

[Nagios-devel] Erroneous use of getcwd on lib/nspath.c

Post by Guest »


Accordingly to manpages and some home made tests, getcwd returns NULL
when an error occurs, not a value and use macro
MAX_PATH, not a fixed size of 4096.

Also we don't need to make sizeof(path) - 1 when calling getcwd.
Quoting manpage:

"The size argument is the size, in bytes, of the array referenced by
buf."

Is it sounds resonable?
Comments?

===================================================================
--- lib/nspath.c (revision 2409)
+++ lib/nspath.c (working copy)
@@ -5,6 +5,7 @@
#include
#include
#include
+#include
#include "nspath.h"

#ifndef PATH_MAX
@@ -119,7 +120,7 @@

char *nspath_absolute(const char *rel_path, const char *base)
{
- char cwd[4096];
+ char cwd[PATH_MAX];
int len;
char *path = NULL, *normpath;

@@ -127,7 +128,7 @@
return nspath_normalize(rel_path);

if (!base) {
- if (getcwd(cwd, sizeof(cwd) - 1) < 0)
+ if (getcwd(cwd, sizeof(cwd)) == NULL)
return NULL;
base = cwd;
}








This post was automatically imported from historical nagios-devel mailing list archives
Original poster: ricardo.maraschini@opservices.com.br
Locked