X-Git-Url: http://git.annexia.org/?a=blobdiff_plain;f=daemon%2Fguestfsd.c;h=7c4e72e44fa62b60acd3a55df37ca0e222c865cf;hb=abac360f324d8c881878c5d9b7fb64be93981125;hp=07a952f09db2afbb2c5f962a36a78035861fa926;hpb=835f6b2c067f3105a330f1a4309eade3afc80ee6;p=libguestfs.git diff --git a/daemon/guestfsd.c b/daemon/guestfsd.c index 07a952f..7c4e72e 100644 --- a/daemon/guestfsd.c +++ b/daemon/guestfsd.c @@ -188,7 +188,7 @@ main (int argc, char *argv[]) */ setenv ("PATH", "/usr/bin:/bin", 1); setenv ("SHELL", "/bin/sh", 1); - setenv ("LANG", "C", 1); + setenv ("LC_ALL", "C", 1); /* We document that umask defaults to 022 (it should be this anyway). */ umask (022); @@ -233,7 +233,8 @@ main (int argc, char *argv[]) exit (1); } - (void) xwrite (sock, buf, xdr_getpos (&xdr)); + if (xwrite (sock, buf, xdr_getpos (&xdr)) == -1) + exit (1); xdr_destroy (&xdr); @@ -273,9 +274,10 @@ sysroot_path (const char *path) } int -xwrite (int sock, const void *buf, size_t len) +xwrite (int sock, const void *v_buf, size_t len) { int r; + const char *buf = v_buf; while (len > 0) { r = write (sock, buf, len); @@ -291,9 +293,10 @@ xwrite (int sock, const void *buf, size_t len) } int -xread (int sock, void *buf, size_t len) +xread (int sock, void *v_buf, size_t len) { int r; + char *buf = v_buf; while (len > 0) { r = read (sock, buf, len); @@ -351,7 +354,7 @@ add_string (char ***argv, int *size, int *alloc, const char *str) } int -count_strings (char * const* const argv) +count_strings (char *const *argv) { int argc; @@ -403,7 +406,7 @@ int command (char **stdoutput, char **stderror, const char *name, ...) { va_list args; - char **argv, **p; + const char **argv; char *s; int i, r; @@ -420,7 +423,7 @@ command (char **stdoutput, char **stderror, const char *name, ...) va_start (args, name); while ((s = va_arg (args, char *)) != NULL) { - p = realloc (argv, sizeof (char *) * (++i)); + const char **p = realloc (argv, sizeof (char *) * (++i)); if (p == NULL) { perror ("realloc"); free (argv); @@ -434,7 +437,7 @@ command (char **stdoutput, char **stderror, const char *name, ...) va_end (args); - r = commandv (stdoutput, stderror, argv); + r = commandv (stdoutput, stderror, (char **) argv); /* NB: Mustn't free the strings which are on the stack. */ free (argv); @@ -450,7 +453,7 @@ int commandr (char **stdoutput, char **stderror, const char *name, ...) { va_list args; - char **argv, **p; + const char **argv; char *s; int i, r; @@ -467,7 +470,7 @@ commandr (char **stdoutput, char **stderror, const char *name, ...) va_start (args, name); while ((s = va_arg (args, char *)) != NULL) { - p = realloc (argv, sizeof (char *) * (++i)); + const char **p = realloc (argv, sizeof (char *) * (++i)); if (p == NULL) { perror ("realloc"); free (argv); @@ -491,11 +494,11 @@ commandr (char **stdoutput, char **stderror, const char *name, ...) /* Same as 'command', but passing an argv. */ int -commandv (char **stdoutput, char **stderror, char * const* const argv) +commandv (char **stdoutput, char **stderror, char *const *argv) { int r; - r = commandrv (stdoutput, stderror, argv); + r = commandrv (stdoutput, stderror, (void *) argv); if (r == 0) return 0; else @@ -503,7 +506,7 @@ commandv (char **stdoutput, char **stderror, char * const* const argv) } int -commandrv (char **stdoutput, char **stderror, char * const* const argv) +commandrv (char **stdoutput, char **stderror, char const* const *argv) { int so_size = 0, se_size = 0; int so_fd[2], se_fd[2]; @@ -547,7 +550,7 @@ commandrv (char **stdoutput, char **stderror, char * const* const argv) close (so_fd[1]); close (se_fd[1]); - execvp (argv[0], argv); + execvp (argv[0], (void *) argv); perror (argv[0]); _exit (1); } @@ -743,8 +746,6 @@ print_sysroot_shell_quote (FILE *stream, const struct printf_info *info, const void *const *args) { -#define SAFE(c) (isalnum((c)) || \ - (c) == '/' || (c) == '-' || (c) == '_' || (c) == '.') fputs (sysroot, stream); return sysroot_len + print_shell_quote (stream, info, args); } @@ -775,7 +776,7 @@ print_arginfo (const struct printf_info *info, size_t n, int *argtypes) #endif /* Perform device name translation. Don't call this directly - - * use the IS_DEVICE macro. + * use the RESOLVE_DEVICE macro. * * See guestfs(3) for the algorithm. *