<div>Hi.</div><div> </div><div>Recently smack feature is added by ls command only and I tested it on emulator of tizen platform.</div><div>But, some operations are not proper at my point of view and I'll share them.</div><div> </div><div>Below is the smack code at seclabel().</div><div><div>///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////</div><div>  } else if (CFG_TOYBOX_SMACK) {<br>    int fd = openat(dirtree_parentfd(dt), dt->name, O_PATH|O_NOFOLLOW);<br>    char buf[SMACK_LABEL_LEN+1];<br>    ssize_t len = 1;</div><div>    strcpy(buf, "?");<br>    if (fd != -1) {<br>      len = fgetxattr(fd, XATTR_NAME_SMACK, pad?buf:0, pad?SMACK_LABEL_LEN:0);<br>      close(fd);</div><div>      if (len<1 || len>SMACK_LABEL_LEN) len = 0;<br>      else buf[len] = 0;<br>    }<br>    if (pad) printf(" %*s "+(pad>0), pad, buf);</div><div>    return len;<br>  } </div><div><div> </div><div>///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////</div></div></div><div><div> </div><div>1. At first, fd is wrong. So, cant call fgetxattr() and print ? for label.</div><div> </div><div>2. 3rd and 4th param of fgetxattr() is changable for __pad__. but why should the __pad__ affect them? </div><div> </div><div>3. If it is hard to get fd, can change to call getxattr() with filepath instead of calling fgetxattr with fd. I got a right result on emulator with belowing example.</div><div> </div><div>For example : </div><div>    <div>///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////</div><div>  } else if (CFG_TOYBOX_SMACK) {</div><div>    char* path = dirtree_path(dt, 0);<br>    char buf[SMACK_LABEL_LEN+1];<br>    ssize_t len = 1;</div><div>    strcpy(buf, "?");<br>    if (path) {<br>      len = getxattr(path, XATTR_NAME_SMACK, buf, SMACK_LABEL_LEN);</div><div>      if (len<1 || len>SMACK_LABEL_LEN) len = 0;<br>      else buf[len] = 0;<br>    }<br>    printf(" %*s "+(pad>0), pad, buf);</div><div>    return len;<br>  } </div><div><div> </div><div>///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////</div><div> </div><div>Can anyone give me an opinion?</div><div> </div><div>Thanks.</div></div></div><div>    </div><div> </div></div>