PERFORCE change 37030 for review

Chris Vance cvance at FreeBSD.org
Wed Aug 27 16:43:05 GMT 2003


http://perforce.freebsd.org/chv.cgi?CH=37030

Change 37030 by cvance at cvance_release on 2003/08/27 09:42:20

	Sync context mangling code with the most recent SELinux distribution.

Affected files ...

.. //depot/projects/trustedbsd/sebsd/lib/libsebsd/context.c#2 edit

Differences ...

==== //depot/projects/trustedbsd/sebsd/lib/libsebsd/context.c#2 (text+ko) ====

@@ -19,12 +19,12 @@
  * 4 colon-separated components and no whitespace.
  */
 context_t
-context_new(char *str)
+context_new(const char *str)
 {
-        int i,j,count,has_level;
+        int i,count;
         context_private_t *n = (context_private_t*) malloc(sizeof(context_private_t));
         context_t result = (context_t) malloc(sizeof(context_s_t));
-        char *p,*tok;
+        const char *p,*tok;
         
         if ( n == 0 || result == 0 ) { goto err; }
         n->current_str = n->component[0] = n->component[1] = n->component[2] =
@@ -43,6 +43,8 @@
         for ( i = 0, tok = str; *tok; i++ ) {
                 for ( p = tok; *p && *p != ':'; p++ ) { /* empty */ }
                 n->component[i] = (char*) malloc(p-tok+1);
+		if (n->component[i] == 0)
+		  goto err;
                 strncpy(n->component[i],tok,p-tok);
                 n->component[i][p-tok] = '\0';
                 tok = *p ? p+1 : p;
@@ -116,10 +118,10 @@
 
 /* Returns nonzero iff failed */
 
-static int set_comp(context_private_t* n,int index,char *str)
+static int set_comp(context_private_t* n,int index, const char *str)
 {
         char *t = (char*) malloc(strlen(str)+1);
-        char *p;
+        const char *p;
         if ( !t ) { return 1; }
         for ( p = str; *p; p++ ) {
                 if ( *p == '\t' || *p == ' ' || *p == '\n' || *p == '\r' ||
@@ -135,7 +137,7 @@
 }
 
 #define def_get(name,tag) \
-char * context_ ## name ## _get(context_t context) \
+const char * context_ ## name ## _get(context_t context) \
 { \
         context_private_t *n = context->ptr; \
         return n->component[tag]; \
@@ -147,7 +149,7 @@
 def_get(role,COMP_ROLE)
 
 #define def_set(name,tag) \
-int context_ ## name ## _set(context_t context, char* str) \
+int context_ ## name ## _set(context_t context, const char* str) \
 { \
         return set_comp(context->ptr,tag,str);\
 }
@@ -156,7 +158,7 @@
 def_set(role,COMP_ROLE)
 def_set(user,COMP_USER)
 
-int context_range_set(context_t context,char* str)
+int context_range_set(context_t context,const char* str)
 {
         context_private_t *n = context->ptr;
         if ( ! n->component[COMP_RANGE] ) {
To Unsubscribe: send mail to majordomo at trustedbsd.org
with "unsubscribe trustedbsd-cvs" in the body of the message



More information about the trustedbsd-cvs mailing list