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