#define _XOPEN_SOURCE 500
#define _GNU_SOURCE
+#include <errno.h> /* EINVAL */
#include <fcntl.h> /* AT_FOO constants */
#include <ftw.h> /* nftw() et al. */
#include <getopt.h> /* getopt_long() */
*
*/
void usage(const char* program_name) {
+ if (program_name == NULL) {
+ /* ??? */
+ return;
+ }
+
printf("Apply any applicable default ACLs to the given files or "
"directories.\n\n");
printf("Usage: %s [flags] <target1> [<target2> [ <target3>...]]\n\n",
int info,
struct FTW *ftw) {
+ if (target == NULL) {
+ errno = EINVAL;
+ perror("apply_default_acl_nftw (args)");
+ return ACL_ERROR;
+ }
+
+
if (apply_default_acl_ex(target, sp, false) == ACL_ERROR) {
/* I guess we do want to bail out for serious/unexpected errors? */
return ACL_ERROR;
int info,
struct FTW *ftw) {
+ if (target == NULL) {
+ errno = EINVAL;
+ perror("apply_default_acl_nftw_x (args)");
+ return ACL_ERROR;
+ }
+
if (apply_default_acl_ex(target, sp, true) == ACL_ERROR) {
/* I guess we do want to bail out for serious/unexpected errors? */
return ACL_ERROR;
* then we return @c ACL_ERROR. Otherwise, we return @c ACL_SUCCESS.
*/
int apply_default_acl_recursive(const char *target, bool no_exec_mask) {
+ if (target == NULL) {
+ errno = EINVAL;
+ perror("apply_default_acl_recursive (args)");
+ return ACL_ERROR;
+ }
+
int max_levels = 256;
int flags = FTW_MOUNT | FTW_PHYS;