mirror of
https://github.com/libguestfs/libguestfs.git
synced 2026-03-21 22:53:37 +00:00
generator.ml: constify do_mkdtemp
* daemon/dir.c (do_mkdtemp): Rewrite for a "const" parameter. * src/generator.ml (mkdtemp): Declare parameter to be of type Pathname.
This commit is contained in:
25
daemon/dir.c
25
daemon/dir.c
@@ -185,31 +185,22 @@ do_is_dir (const char *path)
|
||||
}
|
||||
|
||||
char *
|
||||
do_mkdtemp (char *template)
|
||||
do_mkdtemp (const char *template)
|
||||
{
|
||||
char *r;
|
||||
|
||||
NEED_ROOT (return NULL);
|
||||
ABS_PATH (template, return NULL);
|
||||
char *writable = strdup (template);
|
||||
if (writable == NULL) {
|
||||
reply_with_perror ("strdup");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
CHROOT_IN;
|
||||
r = mkdtemp (template);
|
||||
char *r = mkdtemp (writable);
|
||||
CHROOT_OUT;
|
||||
|
||||
if (r == NULL) {
|
||||
reply_with_perror ("mkdtemp: %s", template);
|
||||
return NULL;
|
||||
free (writable);
|
||||
}
|
||||
|
||||
/* The caller will free template AND try to free the return value,
|
||||
* so we must make a copy here.
|
||||
*/
|
||||
if (r == template) {
|
||||
r = strdup (template);
|
||||
if (r == NULL) {
|
||||
reply_with_perror ("strdup");
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
return r;
|
||||
}
|
||||
|
||||
@@ -2621,8 +2621,7 @@ containing C<dir>.
|
||||
It is an interface to the L<scrub(1)> program. See that
|
||||
manual page for more details.");
|
||||
|
||||
(* FIXME: make this a WritableString? *)
|
||||
("mkdtemp", (RString "dir", [String "template"]), 117, [],
|
||||
("mkdtemp", (RString "dir", [Pathname "template"]), 117, [],
|
||||
[InitBasicFS, Always, TestRun (
|
||||
[["mkdir"; "/tmp"];
|
||||
["mkdtemp"; "/tmp/tmpXXXXXX"]])],
|
||||
@@ -4762,7 +4761,7 @@ and generate_daemon_actions () =
|
||||
| Pathname n ->
|
||||
pr " char *%s = args.%s;\n" n n;
|
||||
pr " ABS_PATH (%s, goto done);\n" n;
|
||||
| Device n ->
|
||||
| Device n ->
|
||||
pr " char *%s = args.%s;\n" n n;
|
||||
pr " RESOLVE_DEVICE (%s, goto done);" n;
|
||||
| String n -> pr " char *%s = args.%s;\n" n n
|
||||
@@ -6843,7 +6842,6 @@ DESTROY (g)
|
||||
iteri (
|
||||
fun i ->
|
||||
function
|
||||
(* FIXME: ? *)
|
||||
| Pathname n | Device n | String n | FileIn n | FileOut n ->
|
||||
pr " char *%s;\n" n
|
||||
| OptString n ->
|
||||
|
||||
Reference in New Issue
Block a user