Fix: accept 255 character labels
authorJarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
Mon, 21 Oct 2013 16:21:42 +0000 (19:21 +0300)
committerJarkko Sakkinen <jsakkine@jsakkine-smackbuntu.(none)>
Tue, 22 Oct 2013 05:52:14 +0000 (08:52 +0300)
Example:

 # /home/jsakkine/devel/smack/utils/chsmack \
   -a$(printf '12345%.0s' {1..51}) foo
 foo: Invalid argument
 # /home/jsakkine/devel/smack/utils/chsmack \
   -a$(printf '12345%.0s' {1..51} | head -c -1) foo
 #

This patch fixes this issue.
(cherry picked from commit 1794fed08418b0e254e1e3a7325a8a67f8186bbc)

utils/chsmack.c

index a785cd4..b6a731d 100644 (file)
@@ -94,21 +94,21 @@ int main(int argc, char *argv[])
                if (option_flag) {
                        if (strlen(access_buf) > 0) {
                                rc = lsetxattr(argv[i], "security.SMACK64",
-                                              access_buf, strlen(access_buf) + 1, 0);
+                                              access_buf, strlen(access_buf), 0);
                                if (rc < 0)
                                        perror(argv[i]);
                        }
 
                        if (strlen(exec_buf) > 0) {
                                rc = lsetxattr(argv[i], "security.SMACK64EXEC",
-                                              exec_buf, strlen(exec_buf) + 1, 0);
+                                              exec_buf, strlen(exec_buf), 0);
                                if (rc < 0)
                                        perror(argv[i]);
                        }
 
                        if (strlen(mmap_buf) > 0) {
                                rc = lsetxattr(argv[i], "security.SMACK64MMAP",
-                                              mmap_buf, strlen(mmap_buf) + 1, 0);
+                                              mmap_buf, strlen(mmap_buf), 0);
                                if (rc < 0)
                                        perror(argv[i]);
                        }