mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-11 05:33:47 +01:00
As far as I can tell, CONFIG_LEGAL_FILENAME_CHARACTERS is both pointless and broken. #if it out, pending agreement from arma. This fixes a bug on win32 that rejected paths with a : in them.
svn:r2309
This commit is contained in:
parent
4b4bfd500a
commit
015232bd39
@ -344,10 +344,12 @@ int crypto_pk_read_private_key_from_filename(crypto_pk_env_t *env, const char *k
|
||||
|
||||
tor_assert(env && keyfile);
|
||||
|
||||
#if 0
|
||||
if(strspn(keyfile,CONFIG_LEGAL_FILENAME_CHARACTERS) != strlen(keyfile)) {
|
||||
/* filename contains nonlegal characters */
|
||||
return -1;
|
||||
}
|
||||
#endif
|
||||
|
||||
/* open the keyfile */
|
||||
f_pr=fopen(keyfile,"rb");
|
||||
|
@ -1507,10 +1507,12 @@ char *read_file_to_str(const char *filename) {
|
||||
|
||||
tor_assert(filename);
|
||||
|
||||
#if 0
|
||||
if(strcspn(filename,CONFIG_LEGAL_FILENAME_CHARACTERS) != 0) {
|
||||
log_fn(LOG_WARN,"Filename %s contains illegal characters.",filename);
|
||||
return NULL;
|
||||
}
|
||||
#endif
|
||||
|
||||
if(stat(filename, &statbuf) < 0) {
|
||||
log_fn(LOG_INFO,"Could not stat %s.",filename);
|
||||
|
@ -74,12 +74,16 @@ struct timeval {
|
||||
#define tor_close_socket(s) close(s)
|
||||
#endif
|
||||
|
||||
#if 0
|
||||
/* XXXX Remove this -- These lists are incomplete, and detecting bad filenames
|
||||
* is the OS's job. -NM */
|
||||
/** Legal characters in a filename */
|
||||
#ifdef MS_WINDOWS
|
||||
#define CONFIG_LEGAL_FILENAME_CHARACTERS "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789.-_/\\ "
|
||||
#else
|
||||
#define CONFIG_LEGAL_FILENAME_CHARACTERS "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789.-_/ "
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#define HEX_CHARACTERS "0123456789ABCDEFabcdef"
|
||||
|
||||
|
@ -28,14 +28,17 @@ typedef enum config_type_t {
|
||||
/** Largest allowed config line */
|
||||
#define CONFIG_LINE_T_MAXLEN 4096
|
||||
|
||||
#if 0
|
||||
static FILE *config_open(const unsigned char *filename);
|
||||
static int config_close(FILE *f);
|
||||
#endif
|
||||
static struct config_line_t *config_get_commandlines(int argc, char **argv);
|
||||
static struct config_line_t *config_get_lines(FILE *f);
|
||||
static void config_free_lines(struct config_line_t *front);
|
||||
static int config_compare(struct config_line_t *c, const char *key, config_type_t type, void *arg);
|
||||
static int config_assign(or_options_t *options, struct config_line_t *list);
|
||||
|
||||
#if 0
|
||||
/** Open a configuration file for reading */
|
||||
static FILE *config_open(const unsigned char *filename) {
|
||||
tor_assert(filename);
|
||||
@ -51,6 +54,7 @@ static int config_close(FILE *f) {
|
||||
tor_assert(f);
|
||||
return fclose(f);
|
||||
}
|
||||
#endif
|
||||
|
||||
/** Helper: Read a list of configuration options from the command line. */
|
||||
static struct config_line_t *config_get_commandlines(int argc, char **argv) {
|
||||
@ -670,9 +674,10 @@ int getconfig(int argc, char **argv, or_options_t *options) {
|
||||
}
|
||||
}
|
||||
}
|
||||
tor_assert(fname);
|
||||
log(LOG_DEBUG,"Opening config file '%s'",fname);
|
||||
|
||||
cf = config_open(fname);
|
||||
cf = fopen(fname, "r");
|
||||
if(!cf) {
|
||||
if(using_default_torrc == 1) {
|
||||
log(LOG_NOTICE, "Configuration file '%s' not present, using reasonable defaults.",fname);
|
||||
@ -692,7 +697,7 @@ int getconfig(int argc, char **argv, or_options_t *options) {
|
||||
if(config_assign(options,cl) < 0)
|
||||
return -1;
|
||||
config_free_lines(cl);
|
||||
config_close(cf);
|
||||
fclose(cf);
|
||||
}
|
||||
|
||||
/* go through command-line variables too */
|
||||
|
Loading…
Reference in New Issue
Block a user