All of lore.kernel.org
 help / color / mirror / Atom feed
* [ SEPOL ] [ SEMANAGE 2] Fix spec for sepol_context_to_string
@ 2005-11-02  7:19 Ivan Gyurdiev
  0 siblings, 0 replies; only message in thread
From: Ivan Gyurdiev @ 2005-11-02  7:19 UTC (permalink / raw)
  To: selinux; +Cc: Stephen Smalley

[-- Attachment #1: Type: text/plain, Size: 106 bytes --]

Do not mix exit status with return value - use a parameter instead, like 
it's done for everything else.


[-- Attachment #2: libsepol.libsemanage.context_to_string.diff --]
[-- Type: text/x-patch, Size: 5003 bytes --]

diff -Naurp --exclude CVS --exclude ChangeLog --exclude VERSION --exclude Makefile old/libsemanage/include/semanage/context_record.h new/libsemanage/include/semanage/context_record.h
--- old/libsemanage/include/semanage/context_record.h	2005-10-31 11:09:39.000000000 -0500
+++ new/libsemanage/include/semanage/context_record.h	2005-11-02 02:13:39.000000000 -0500
@@ -61,8 +61,9 @@ extern int semanage_context_from_string(
 	const char* str, 
 	semanage_context_t** con);
 
-extern char* semanage_context_to_string(
+extern int semanage_context_to_string(
 	semanage_handle_t* handle,
-	semanage_context_t* con);
+	semanage_context_t* con,
+	char** str_ptr);
 
 #endif 
diff -Naurp --exclude CVS --exclude ChangeLog --exclude VERSION --exclude Makefile old/libsemanage/src/context_record.c new/libsemanage/src/context_record.c
--- old/libsemanage/src/context_record.c	2005-10-31 11:09:39.000000000 -0500
+++ new/libsemanage/src/context_record.c	2005-11-02 02:11:36.000000000 -0500
@@ -88,9 +88,10 @@ int semanage_context_from_string(
 	return sepol_context_from_string(handle->sepolh, str, con);
 }
 
-char* semanage_context_to_string(
+int semanage_context_to_string(
 	semanage_handle_t* handle,
-	semanage_context_t* con) {
+	semanage_context_t* con,
+	char** str_ptr) {
 
-	return sepol_context_to_string(handle->sepolh, con);
+	return sepol_context_to_string(handle->sepolh, con, str_ptr);
 }
diff -Naurp --exclude CVS --exclude ChangeLog --exclude VERSION --exclude Makefile old/libsemanage/src/interfaces_file.c new/libsemanage/src/interfaces_file.c
--- old/libsemanage/src/interfaces_file.c	2005-11-02 02:04:33.000000000 -0500
+++ new/libsemanage/src/interfaces_file.c	2005-11-02 02:17:15.000000000 -0500
@@ -32,16 +32,14 @@ static int iface_print(
 	if (fprintf(str, "netifcon %s ", name) < 0)
 		goto err;
 
-	con_str = semanage_context_to_string(handle, ifcon);
-	if (!con_str)
+	if (semanage_context_to_string(handle, ifcon, &con_str) < 0)
 		goto err;
 	if (fprintf(str, "%s", con_str) < 0)
 		goto err;
 	free(con_str);
 	con_str = NULL;
 
-	con_str = semanage_context_to_string(handle, msgcon);
-	if (!con_str)
+	if (semanage_context_to_string(handle, msgcon, &con_str) < 0)
 		goto err;
 	if (fprintf(str, "%s\n", con_str) < 0)
 		goto err;
diff -Naurp --exclude CVS --exclude ChangeLog --exclude VERSION --exclude Makefile old/libsemanage/src/ports_file.c new/libsemanage/src/ports_file.c
--- old/libsemanage/src/ports_file.c	2005-11-02 02:04:33.000000000 -0500
+++ new/libsemanage/src/ports_file.c	2005-11-02 02:17:30.000000000 -0500
@@ -28,6 +28,7 @@ static int port_print(
 	int low = semanage_port_get_low(port);
 	int high = semanage_port_get_high(port);
 	const char* proto = semanage_port_get_proto_str(port);
+	semanage_context_t* con = semanage_port_get_con(port);
 
 	if (fprintf(str, "portcon %s ", proto) < 0)
 		goto err;
@@ -40,10 +41,8 @@ static int port_print(
 			goto err;
 	}
 
-	con_str = semanage_context_to_string(handle, semanage_port_get_con(port));
-	if (!con_str)
+	if (semanage_context_to_string(handle, con, &con_str) < 0)
 		goto err;
-
 	if (fprintf(str, "%s\n", con_str) < 0)
 		goto err;
 
diff -Naurp --exclude CVS --exclude ChangeLog --exclude VERSION --exclude Makefile old/libsepol/include/sepol/context_record.h new/libsepol/include/sepol/context_record.h
--- old/libsepol/include/sepol/context_record.h	2005-10-31 11:09:39.000000000 -0500
+++ new/libsepol/include/sepol/context_record.h	2005-11-02 02:10:35.000000000 -0500
@@ -64,8 +64,9 @@ extern int sepol_context_from_string(
 	const char* str, 
 	sepol_context_t** con);
 
-extern char* sepol_context_to_string(
+extern int sepol_context_to_string(
 	sepol_handle_t* handle,
-	sepol_context_t* con);
+	sepol_context_t* con,
+	char** str_ptr);
 
 #endif 
diff -Naurp --exclude CVS --exclude ChangeLog --exclude VERSION --exclude Makefile old/libsepol/src/context_record.c new/libsepol/src/context_record.c
--- old/libsepol/src/context_record.c	2005-10-31 11:09:39.000000000 -0500
+++ new/libsepol/src/context_record.c	2005-11-02 02:14:07.000000000 -0500
@@ -246,21 +246,20 @@ int sepol_context_from_string(
 	return STATUS_ERR;
 }
 
-char* sepol_context_to_string(
+int sepol_context_to_string(
 	sepol_handle_t* handle,
-	sepol_context_t* con) {
+	sepol_context_t* con,
+	char** str_ptr) {
 
+	int rc;
 	const int user_sz = strlen(con->user);
 	const int role_sz = strlen(con->role);
 	const int type_sz = strlen(con->type);
 	const int mls_sz = (con->mls)? strlen(con->mls): 0;	
-
 	const int total_sz = user_sz + role_sz + type_sz + 
 		mls_sz + ((con->mls)? 3:2);
 
-	char* str = malloc(total_sz + 1);
-	int rc;
-
+	char* str = (char*) malloc(total_sz + 1);
 	if (!str)
 		goto omem;
 	
@@ -281,14 +280,14 @@ char* sepol_context_to_string(
 		}
 	}
 
-	return str; 
+	*str_ptr = str;
+	return STATUS_SUCCESS; 
 
 	omem:
 	ERR(handle, "out of memory");
 
 	err:
 	ERR(handle, "could not convert context to string");
-	if (str)
-		free(str);
-	return NULL;
+	free(str);
+	return STATUS_ERR;
 }

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2005-11-02  7:19 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-11-02  7:19 [ SEPOL ] [ SEMANAGE 2] Fix spec for sepol_context_to_string Ivan Gyurdiev

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.