X-Git-Url: http://git.annexia.org/?p=libguestfs.git;a=blobdiff_plain;f=daemon%2Fumask.c;h=1563c52e4ada97350f0d1e5b813d4a62437a61e8;hp=ad8573d7838011b8c4a48337432ef8250d3403eb;hb=428a45c3e15f03e9861e1b551e1ae8da821dba5f;hpb=f850e1f065fb04df7cc87a921ab3c658741cc393 diff --git a/daemon/umask.c b/daemon/umask.c index ad8573d..1563c52 100644 --- a/daemon/umask.c +++ b/daemon/umask.c @@ -1,5 +1,5 @@ /* libguestfs - the guestfsd daemon - * Copyright (C) 2009 Red Hat Inc. + * Copyright (C) 2009 Red Hat Inc. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -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; +}