X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/blobdiff_plain/64bd756832d93c0767e72a3432fda29b30d69405..536b84680b4ab1f29fa456b4fa7b5b16eff4af8f:/authenticate.c?ds=sidebyside diff --git a/authenticate.c b/authenticate.c index 2b981195..a1c35755 100644 --- a/authenticate.c +++ b/authenticate.c @@ -82,7 +82,7 @@ static int get_secret(int module, char *user, char *secret, int len) if (!fname || !*fname) return 0; - fd = open(fname,O_RDONLY); + fd = open(fname,O_RDONLY | O_TEXT); if (fd == -1) return 0; if (do_stat(fname, &st) == -1) { @@ -105,8 +105,8 @@ static int get_secret(int module, char *user, char *secret, int len) while (!found) { int i = 0; - memset(line, 0, sizeof(line)); - while (i<(sizeof(line)-1)) { + memset(line, 0, sizeof line); + while ((size_t) i < (sizeof(line)-1)) { if (read(fd, &line[i], 1) != 1) { memset(line, 0, sizeof(line)); close(fd); @@ -144,7 +144,7 @@ static char *getpassf(char *filename) if (!filename) return NULL; - if ( (fd=open(filename,O_RDONLY)) == -1) { + if ( (fd=open(filename,O_RDONLY | O_TEXT)) == -1) { rsyserr(FERROR, errno, "could not open password file \"%s\"",filename); if (envpw) rprintf(FERROR,"falling back to RSYNC_PASSWORD environment variable.\n"); return NULL; @@ -203,7 +203,7 @@ static void generate_hash(char *in, char *challenge, char *out) otherwise return username */ -char *auth_server(int fd, int module, char *addr, char *leader) +char *auth_server(int f_in, int f_out, int module, char *addr, char *leader) { char *users = lp_auth_users(module); char challenge[16]; @@ -222,9 +222,9 @@ char *auth_server(int fd, int module, char *addr, char *leader) base64_encode(challenge, 16, b64_challenge); - io_printf(fd,"%s%s\n", leader, b64_challenge); + io_printf(f_out, "%s%s\n", leader, b64_challenge); - if (!read_line(fd, line, sizeof(line)-1)) { + if (!read_line(f_in, line, sizeof(line)-1)) { return NULL; }