projects
/
collectd.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'pr/2454'
[collectd.git]
/
src
/
unixsock.c
diff --git
a/src/unixsock.c
b/src/unixsock.c
index
8ccde80
..
99e39ee
100644
(file)
--- a/
src/unixsock.c
+++ b/
src/unixsock.c
@@
-134,7
+134,13
@@
static int us_open_socket(void) {
const char *grpname;
struct group *g;
struct group sg;
const char *grpname;
struct group *g;
struct group sg;
- char grbuf[2048];
+
+ long int grbuf_size = sysconf(_SC_GETGR_R_SIZE_MAX);
+ if (grbuf_size <= 0)
+ grbuf_size = sysconf(_SC_PAGESIZE);
+ if (grbuf_size <= 0)
+ grbuf_size = 4096;
+ char grbuf[grbuf_size];
grpname = (sock_group != NULL) ? sock_group : COLLECTD_GRP_NAME;
g = NULL;
grpname = (sock_group != NULL) ? sock_group : COLLECTD_GRP_NAME;
g = NULL;
@@
-143,7
+149,7
@@
static int us_open_socket(void) {
if (status != 0) {
char errbuf[1024];
WARNING("unixsock plugin: getgrnam_r (%s) failed: %s", grpname,
if (status != 0) {
char errbuf[1024];
WARNING("unixsock plugin: getgrnam_r (%s) failed: %s", grpname,
- sstrerror(
errno
, errbuf, sizeof(errbuf)));
+ sstrerror(
status
, errbuf, sizeof(errbuf)));
break;
}
if (g == NULL) {
break;
}
if (g == NULL) {