X-Git-Url: http://git.annexia.org/?a=blobdiff_plain;f=daemon%2Fumask.c;h=1563c52e4ada97350f0d1e5b813d4a62437a61e8;hb=37366ede50b78ff9159e080ebae08a822795452a;hp=22d2cc9318ce2e9187035ec24ba48df751468bec;hpb=a7b73d4a1e09f12b2002083618056f0c823c1dcf;p=libguestfs.git diff --git a/daemon/umask.c b/daemon/umask.c index 22d2cc9..1563c52 100644 --- a/daemon/umask.c +++ b/daemon/umask.c @@ -26,7 +26,7 @@ #include #include -#include "../src/guestfs_protocol.h" +#include "guestfs_protocol.h" #include "daemon.h" #include "actions.h" @@ -35,6 +35,11 @@ do_umask (int mask) { int r; + if (mask < 0 || mask > 0777) { + reply_with_error ("0%o: mask negative or out of range", mask); + return -1; + } + r = umask (mask); if (r == -1) { @@ -44,3 +49,20 @@ do_umask (int mask) return r; } + +int +do_get_umask (void) +{ + int r; + + r = umask (022); + if (r == -1) { + reply_with_perror ("umask"); + return -1; + } + + /* Restore the umask, since the call above corrupted it. */ + umask (r); + + return r; +}