projects
/
tinc
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
All full stops have two spaces after them. (Silly commit, I know.)
[tinc]
/
src
/
conf.c
diff --git
a/src/conf.c
b/src/conf.c
index
11a9ca0
..
f9af685
100644
(file)
--- a/
src/conf.c
+++ b/
src/conf.c
@@
-19,7
+19,7
@@
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- $Id: conf.c,v 1.9.4.2
7 2000/11/30 00:24:13
zarq Exp $
+ $Id: conf.c,v 1.9.4.2
9 2000/11/30 22:32:14
zarq Exp $
*/
#include "config.h"
*/
#include "config.h"
@@
-158,6
+158,7
@@
char *readline(FILE *fp)
maxlen = size;
line = xmalloc(size);
idx = line;
maxlen = size;
line = xmalloc(size);
idx = line;
+ *idx = 0;
for(;;)
{
errno = 0;
for(;;)
{
errno = 0;
@@
-216,7
+217,13
@@
cp
err = -1;
break;
}
err = -1;
break;
}
-
+
+ if(feof(fp))
+ {
+ err = 0;
+ break;
+ }
+
lineno++;
if((p = strtok(line, "\t =")) == NULL)
lineno++;
if((p = strtok(line, "\t =")) == NULL)
@@
-231,23
+238,23
@@
cp
if(!hazahaza[i].name)
{
if(!hazahaza[i].name)
{
- syslog(LOG_ERR, _("Invalid variable name on line %d while reading config file %s"),
- lineno, fname);
+ syslog(LOG_ERR, _("Invalid variable name
`%s'
on line %d while reading config file %s"),
+
p,
lineno, fname);
break;
}
if(((q = strtok(NULL, "\t\n\r =")) == NULL) || q[0] == '#')
{
break;
}
if(((q = strtok(NULL, "\t\n\r =")) == NULL) || q[0] == '#')
{
- fprintf(stderr, _("No value for variable on line %d while reading config file %s"),
- lineno, fname);
+ fprintf(stderr, _("No value for variable
`%s'
on line %d while reading config file %s"),
+
hazahaza[i].name,
lineno, fname);
break;
}
cfg = add_config_val(base, hazahaza[i].argtype, q);
if(cfg == NULL)
{
break;
}
cfg = add_config_val(base, hazahaza[i].argtype, q);
if(cfg == NULL)
{
- fprintf(stderr, _("Invalid value for variable on line %d while reading config file %s"),
- lineno, fname);
+ fprintf(stderr, _("Invalid value for variable
`%s'
on line %d while reading config file %s"),
+
hazahaza[i].name,
lineno, fname);
break;
}
break;
}
@@
-356,12
+363,14
@@
int is_safe_path(const char *file)
}
*p = '/';
}
*p = '/';
- if(stat(file, &s) < 0)
+ if(stat(file, &s) < 0
&& errno != ENOENT
)
{
fprintf(stderr, _("Couldn't stat `%s': %m\n"),
file);
return 0;
}
{
fprintf(stderr, _("Couldn't stat `%s': %m\n"),
file);
return 0;
}
+ if(errno == ENOENT)
+ return 1;
if(s.st_uid != geteuid())
{
fprintf(stderr, _("`%s' is owned by UID %d instead of %d.\n"),
if(s.st_uid != geteuid())
{
fprintf(stderr, _("`%s' is owned by UID %d instead of %d.\n"),