18290d1083ec7eee3f32265012f5d6be2774c4afcStephen Smalley#include <unistd.h>
28290d1083ec7eee3f32265012f5d6be2774c4afcStephen Smalley#include <stdio.h>
38290d1083ec7eee3f32265012f5d6be2774c4afcStephen Smalley#include <stdlib.h>
48290d1083ec7eee3f32265012f5d6be2774c4afcStephen Smalley#include <errno.h>
58290d1083ec7eee3f32265012f5d6be2774c4afcStephen Smalley#include <selinux/selinux.h>
68290d1083ec7eee3f32265012f5d6be2774c4afcStephen Smalley
78290d1083ec7eee3f32265012f5d6be2774c4afcStephen Smalleyint chcon_main(int argc, char **argv)
88290d1083ec7eee3f32265012f5d6be2774c4afcStephen Smalley{
98290d1083ec7eee3f32265012f5d6be2774c4afcStephen Smalley    int rc, i;
108290d1083ec7eee3f32265012f5d6be2774c4afcStephen Smalley
118290d1083ec7eee3f32265012f5d6be2774c4afcStephen Smalley    if (argc < 3) {
128290d1083ec7eee3f32265012f5d6be2774c4afcStephen Smalley        fprintf(stderr, "usage:  %s context path...\n", argv[0]);
138290d1083ec7eee3f32265012f5d6be2774c4afcStephen Smalley        exit(1);
148290d1083ec7eee3f32265012f5d6be2774c4afcStephen Smalley    }
158290d1083ec7eee3f32265012f5d6be2774c4afcStephen Smalley
168290d1083ec7eee3f32265012f5d6be2774c4afcStephen Smalley    for (i = 2; i < argc; i++) {
178290d1083ec7eee3f32265012f5d6be2774c4afcStephen Smalley        rc = setfilecon(argv[i], argv[1]);
188290d1083ec7eee3f32265012f5d6be2774c4afcStephen Smalley        if (rc < 0) {
198290d1083ec7eee3f32265012f5d6be2774c4afcStephen Smalley            fprintf(stderr, "%s:  Could not label %s with %s:  %s\n",
208290d1083ec7eee3f32265012f5d6be2774c4afcStephen Smalley                    argv[0], argv[i], argv[1], strerror(errno));
218290d1083ec7eee3f32265012f5d6be2774c4afcStephen Smalley            exit(2);
228290d1083ec7eee3f32265012f5d6be2774c4afcStephen Smalley        }
238290d1083ec7eee3f32265012f5d6be2774c4afcStephen Smalley    }
248290d1083ec7eee3f32265012f5d6be2774c4afcStephen Smalley    exit(0);
258290d1083ec7eee3f32265012f5d6be2774c4afcStephen Smalley}
26