--- libselinux-2.0.14/src/fgetfilecon.c 2007-04-24 10:36:20.000000000 -0400 +++ libselinux-2.0.14.new/src/fgetfilecon.c 2007-09-13 09:06:28.000000000 -0400 @@ -37,6 +37,11 @@ ret = fgetxattr(fd, XATTR_NAME_SELINUX, buf, size - 1); } out: + if (ret == 0) { + /* Re-map empty attribute values to errors. */ + errno = EOPNOTSUPP; + ret = -1; + } if (ret < 0) free(buf); else @@ -51,6 +56,8 @@ security_context_t rcontext; int ret; + *context = NULL; + ret = fgetfilecon_raw(fd, &rcontext); if (ret > 0) { --- libselinux-2.0.14/src/getfilecon.c 2007-04-24 10:36:21.000000000 -0400 +++ libselinux-2.0.14.new/src/getfilecon.c 2007-09-13 09:06:13.000000000 -0400 @@ -37,6 +37,11 @@ ret = getxattr(path, XATTR_NAME_SELINUX, buf, size - 1); } out: + if (ret == 0) { + /* Re-map empty attribute values to errors. */ + errno = EOPNOTSUPP; + ret = -1; + } if (ret < 0) free(buf); else @@ -51,6 +56,8 @@ int ret; security_context_t rcontext; + *context = NULL; + ret = getfilecon_raw(path, &rcontext); if (ret > 0) { --- libselinux-2.0.14/src/lgetfilecon.c 2007-04-24 10:36:20.000000000 -0400 +++ libselinux-2.0.14.new/src/lgetfilecon.c 2007-09-13 09:06:23.000000000 -0400 @@ -37,6 +37,11 @@ ret = lgetxattr(path, XATTR_NAME_SELINUX, buf, size - 1); } out: + if (ret == 0) { + /* Re-map empty attribute values to errors. */ + errno = EOPNOTSUPP; + ret = -1; + } if (ret < 0) free(buf); else @@ -51,6 +56,8 @@ int ret; security_context_t rcontext; + *context = NULL; + ret = lgetfilecon_raw(path, &rcontext); if (ret > 0) {