#include "actions.h"
char *
-do_readlink (char *path)
+do_readlink (const char *path)
{
ssize_t r;
char *ret;
char link[PATH_MAX];
- NEED_ROOT (NULL);
- ABS_PATH (path, NULL);
-
CHROOT_IN;
r = readlink (path, link, sizeof link);
CHROOT_OUT;
char *buf_linkname;
char *buf_target;
- NEED_ROOT (-1);
- ABS_PATH (linkname, -1);
- /* but target does not need to be absolute */
-
/* Prefix linkname with sysroot. */
buf_linkname = sysroot_path (linkname);
if (!buf_linkname) {
if (flag)
r = command (NULL, &err,
- "ln", flag, "--", /* target could begin with '-' */
- buf_target ? : target, buf_linkname, NULL);
+ "ln", flag, "--", /* target could begin with '-' */
+ buf_target ? : target, buf_linkname, NULL);
else
r = command (NULL, &err,
- "ln", "--",
- buf_target ? : target, buf_linkname, NULL);
+ "ln", "--",
+ buf_target ? : target, buf_linkname, NULL);
free (buf_linkname);
free (buf_target);
if (r == -1) {
reply_with_error ("ln%s%s: %s: %s: %s",
- flag ? " " : "",
- flag ? : "",
- target, linkname, err);
+ flag ? " " : "",
+ flag ? : "",
+ target, linkname, err);
free (err);
return -1;
}
}
int
-do_ln (char *target, char *linkname)
+do_ln (const char *target, const char *linkname)
{
return _link (NULL, 0, target, linkname);
}
int
-do_ln_f (char *target, char *linkname)
+do_ln_f (const char *target, const char *linkname)
{
return _link ("-f", 0, target, linkname);
}
int
-do_ln_s (char *target, char *linkname)
+do_ln_s (const char *target, const char *linkname)
{
return _link ("-s", 1, target, linkname);
}
int
-do_ln_sf (char *target, char *linkname)
+do_ln_sf (const char *target, const char *linkname)
{
return _link ("-sf", 1, target, linkname);
}