Try to fix ctype issues by always calling these functions as
[rsync/rsync.git] / clientserver.c
index 190872d..4a857e3 100644 (file)
@@ -161,10 +161,14 @@ int start_socket_client(char *host, char *path, int argc, char *argv[])
                        exit(0);
                }
 
-               if (strncmp(line, "@ERROR", 6) == 0)
+               if (strncmp(line, "@ERROR", 6) == 0) {
                        rprintf(FERROR,"%s\n", line);
-               else
+                       /* This is always fatal; the server will now
+                        * close the socket. */
+                       return RERR_STARTCLIENT;
+               } else {
                        rprintf(FINFO,"%s\n", line);
+               }
        }
        kludge_around_eof = False;
 
@@ -242,7 +246,7 @@ static int rsync_module(int fd, int i)
        if (am_root) {
                p = lp_uid(i);
                if (!name_to_uid(p, &uid)) {
-                       if (!isdigit(*p)) {
+                       if (!isdigit(* (unsigned char *) p)) {
                                rprintf(FERROR,"Invalid uid %s\n", p);
                                io_printf(fd,"@ERROR: invalid uid %s\n", p);
                                return -1;
@@ -252,7 +256,7 @@ static int rsync_module(int fd, int i)
 
                p = lp_gid(i);
                if (!name_to_gid(p, &gid)) {
-                       if (!isdigit(*p)) {
+                       if (!isdigit(* (unsigned char *) p)) {
                                rprintf(FERROR,"Invalid gid %s\n", p);
                                io_printf(fd,"@ERROR: invalid gid %s\n", p);
                                return -1;