On Sat, 19.07.14 16:15, Timofey Titovets ([email protected]) wrote:
Heya,
> +int fail_if_symlink(const char *unit, const char* where) {
> + assert(where);
> +
> + if (!is_symlink(where))
> + return 0;
> +
> + log_warning_unit(unit,
> + "%s Refuse mount on symlink: %s",
> + unit, strerror(1));
strerror(1)? Where does the "1" come from?
> +
> + return -1;
We strictly follow the logic to return "errno"-style negative error
numbers, we never make up numeric ones, like "-1".
In this case "return -ELOOP" sounds appropriate, I'd say..."
> +
> +bool is_symlink(const char *path) {
> + struct stat info;
> +
> + lstat(path, &info);
You need to handle the case whether the path doesn't exist at all, or
the lstat() fails for other reasons. I think it would be a good idea to
change is_symlink() to return an "int", and then simply return the
negative errno on failure, and 0 or 1 otherwise:
if (lstat(path, &info) < 0)
return -errno;
That would follow our usual coding style very closely...
Thanks,
Lennart
--
Lennart Poettering, Red Hat
_______________________________________________
systemd-devel mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/systemd-devel