14c0564641e6c8be386f117c2b0f09434121226f |
|
14-Sep-2014 |
Nicolas Iooss <nicolas.iooss@m4x.org> |
libsepol: fix most gcc -Wwrite-strings warnings gcc puts literal strings lie in read-only memory. On x86_64, trying to write to them triggers a segmentation fault. To detect such issues at build time, variables holding a pointer to such strings should be "const char*". "gcc -Wwrite-strings" warns when using non-const pointers to literal strings. Remove gcc warnings by adding const to local variables and argumens of internal functions. This does *not* fix this warning: policydb_public.c:208:10: warning: passing argument 2 of 'hashtab_search' discards 'const' qualifier from pointer target type return (hashtab_search(p->p.p_classes.table, PACKET_CLASS_NAME) == ^ In file included from ../include/sepol/policydb/symtab.h:16:0, from ../include/sepol/policydb/policydb.h:60, from policydb_public.c:4: ../include/sepol/policydb/hashtab.h:98:24: note: expected 'hashtab_key_t' but argument is of type 'const char *' extern hashtab_datum_t hashtab_search(hashtab_t h, const hashtab_key_t k); ^ Moreover the "const" word in hashtab_search prototype does not make the second parameter "const char*" but "char* const". Acked-by: Steve Lawrence <slawrence@tresys.com>
/external/selinux/libsepol/src/policydb_internal.h
|
505c75aad7f16e0db9ccfeb04eaa70f242e6b060 |
|
29-Sep-2009 |
Paul Nuzzi <pjnuzzi@tycho.ncsc.mil> |
libsepol: Add support for multiple target OSes On Wed, 2009-09-16 at 09:58 -0400, Joshua Brindle wrote: > I'd rather have separate ocontext structs for each system. That way it > is very easy to understand which ones apply to which system and you > don't get a crazy out of context ocontext struct. > I looked into having separate ocontext structs but that would involve changing a lot of files making the patch much larger and more intrusive. > > } u; > > union { > > uint32_t sclass; /* security class for genfs */ > > @@ -313,6 +323,17 @@ typedef struct genfs { > > #define OCON_NODE6 6 /* IPv6 nodes */ > > #define OCON_NUM 7 > > > > +/* object context array indices for Xen */ > > +#define OCON_ISID 0 /* initial SIDs */ > > +#define OCON_PIRQ 1 /* physical irqs */ > > +#define OCON_IOPORT 2 /* io ports */ > > +#define OCON_IOMEM 3 /* io memory */ > > +#define OCON_DEVICE 4 /* pci devices */ > > +#define OCON_DUMMY1 5 /* reserved */ > > +#define OCON_DUMMY2 6 /* reserved */ > > +#define OCON_NUM 7 > > + > > + > > > Should these be namespaced? What if <random other system> has io port > objects? You'd have to align them with each other and you have a mess of > keeping the numbers the same (you already do this with OCON_ISID) Variables have been namespaced and there is no more overlap with OCON_ISID. > Also we are relying on having the same number of OCON's which isn't good > I don't think. As much as I hate the policydb_compat_info (read: alot) > why aren't we using that to say how many ocons a xen policy really has? OCON_NUM is now dynamically read through policydb_compat_info. > This is messy, why not an ocontext_selinux_free() and > ocontext_xen_free() (note: I realize the xen_free() one won't do > anything except freep the ocontext_t) > done. > > > > len = buf[1]; > > - if (len != strlen(target_str)&& > > - (!alt_target_str || len != strlen(alt_target_str))) { > > - ERR(fp->handle, "policydb string length %zu does not match " > > - "expected length %zu", len, strlen(target_str)); > > + if (len> 32) { > > > > magic number 32? #defined. Thanks for your input. Below is the updated patch for libsepol. ---- libsepol/include/sepol/policydb/policydb.h | 28 ++ libsepol/src/expand.c | 85 +++++++- libsepol/src/policydb.c | 295 +++++++++++++++++++++++------ libsepol/src/policydb_internal.h | 1 libsepol/src/private.h | 4 libsepol/src/write.c | 93 ++++++++- 6 files changed, 443 insertions(+), 63 deletions(-) Signed-off-by: Joshua Brindle <method@manicmethod.com>
/external/selinux/libsepol/src/policydb_internal.h
|
13cd4c8960688af11ad23b4c946149015c80d549 |
|
19-Aug-2008 |
Joshua Brindle <method@manicmethod.com> |
initial import from svn trunk revision 2950
/external/selinux/libsepol/src/policydb_internal.h
|