X-Git-Url: http://git.annexia.org/?p=libguestfs.git;a=blobdiff_plain;f=daemon%2Fumask.c;h=db4a2f2ff0d886a5a006131658dc2ac983312fe5;hp=ad8573d7838011b8c4a48337432ef8250d3403eb;hb=d600342b7d29c0176ff96a7807ebb38303ecb3a6;hpb=f850e1f065fb04df7cc87a921ab3c658741cc393 diff --git a/daemon/umask.c b/daemon/umask.c index ad8573d..db4a2f2 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 @@ -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; +}