1 diff a/src/rrd_tool.c b/src/rrd_tool.c
2 --- a/src/rrd_tool.c
3 +++ b/src/rrd_tool.c
4 @@ -424,11 +424,8 @@ int main(
5 == 0) {
7 #ifdef HAVE_CHROOT
8 - chroot(argv[2]);
9 - if (errno != 0) {
10 - fprintf(stderr,
11 - "ERROR: can't change root to '%s' errno=%d\n",
12 - argv[2], errno);
13 + if (chroot(argv[2]) != 0){
14 + fprintf(stderr, "ERROR: chroot %s: %s\n", argv[2],rrd_strerror(errno));
15 exit(errno);
16 }
17 ChangeRoot = 1;
18 @@ -444,9 +441,8 @@ int main(
19 }
20 }
21 if (strcmp(firstdir, "")) {
22 - chdir(firstdir);
23 - if (errno != 0) {
24 - fprintf(stderr, "ERROR: %s\n", rrd_strerror(errno));
25 + if (chdir(firstdir) != 0){
26 + fprintf(stderr, "ERROR: chdir %s %s\n", firstdir,rrd_strerror(errno));
27 exit(errno);
28 }
29 }
30 @@ -520,7 +516,6 @@ int HandleInputLine(
32 /* Reset errno to 0 before we start.
33 */
34 - errno = 0;
35 if (RemoteMode) {
36 if (argc > 1 && strcmp("quit", argv[1]) == 0) {
37 if (argc > 2) {
38 @@ -543,9 +538,8 @@ int HandleInputLine(
39 return (1);
40 }
41 #endif
42 - chdir(argv[2]);
43 - if (errno != 0) {
44 - printf("ERROR: %s\n", rrd_strerror(errno));
45 + if (chdir(argv[2]) != 0){
46 + printf("ERROR: chdir %s %s\n", argv[2], rrd_strerror(errno));
47 return (1);
48 }
49 return (0);
50 @@ -557,7 +551,7 @@ int HandleInputLine(
51 }
52 cwd = getcwd(NULL, MAXPATH);
53 if (cwd == NULL) {
54 - printf("ERROR: %s\n", rrd_strerror(errno));
55 + printf("ERROR: getcwd %s\n", rrd_strerror(errno));
56 return (1);
57 }
58 printf("%s\n", cwd);
59 @@ -577,9 +571,8 @@ int HandleInputLine(
60 return (1);
61 }
62 #endif
63 - mkdir(argv[2], 0777);
64 - if (errno != 0) {
65 - printf("ERROR: %s\n", rrd_strerror(errno));
66 + if(mkdir(argv[2], 0777)!=0){
67 + printf("ERROR: mkdir %s: %s\n", argv[2],rrd_strerror(errno));
68 return (1);
69 }
70 return (0);
71 @@ -607,7 +600,7 @@ int HandleInputLine(
72 }
73 closedir(curdir);
74 } else {
75 - printf("ERROR: %s\n", rrd_strerror(errno));
76 + printf("ERROR: opendir .: %s\n", rrd_strerror(errno));
77 return (errno);
78 }
79 return (0);