All of lore.kernel.org
 help / color / mirror / Atom feed
* semodule patch to use new semanage interfaces
@ 2008-11-07 14:41 Daniel J Walsh
  2009-01-05 19:52 ` Joshua Brindle
  2009-01-12 20:58 ` Joshua Brindle
  0 siblings, 2 replies; 6+ messages in thread
From: Daniel J Walsh @ 2008-11-07 14:41 UTC (permalink / raw)
  To: SE Linux

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

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Allows semodule to read bzip compressed policy packages directly.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)
Comment: Using GnuPG with Fedora - http://enigmail.mozdev.org

iEYEARECAAYFAkkUU5QACgkQrlYvE4MpobMHGQCdGwEl3h1ZwV92u1mfgrr3z7XT
NGYAoIwz76N7QFdEr8I0t3ncGhbo6heq
=raBi
-----END PGP SIGNATURE-----

[-- Attachment #2: semodule.patch --]
[-- Type: text/plain, Size: 2164 bytes --]

--- nsapolicycoreutils/semodule/semodule.c	2008-08-28 09:34:24.000000000 -0400
+++ policycoreutils-2.0.57/semodule/semodule.c	2008-10-10 16:04:46.000000000 -0400
@@ -60,24 +60,6 @@
 	free(commands);
 }
 
-/* mmap() a file to '*data', returning the total number of bytes in
- * the file.  Returns 0 if file could not be opened or mapped. */
-static size_t map_file(char *filename, char **data)
-{
-	int fd;
-	struct stat sb;
-	if ((fd = open(filename, O_RDONLY)) == -1) {
-		return 0;
-	}
-	if (fstat(fd, &sb) == -1 ||
-	    (*data = mmap(NULL, sb.st_size, PROT_READ, MAP_PRIVATE, fd, 0)) ==
-	    MAP_FAILED) {
-		sb.st_size = 0;
-	}
-	close(fd);
-	return sb.st_size;
-}
-
 /* Signal handlers. */
 static void handle_signal(int sig_num)
 {
@@ -339,16 +321,6 @@
 	for (i = 0; i < num_commands; i++) {
 		enum client_modes mode = commands[i].mode;
 		char *mode_arg = commands[i].arg;
-		char *data = NULL;
-		size_t data_len = 0;
-		if (mode == INSTALL_M || mode == UPGRADE_M || mode == BASE_M) {
-			if ((data_len = map_file(mode_arg, &data)) == 0) {
-				fprintf(stderr,
-					"%s:  Could not read file '%s': %s\n",
-					argv[0], mode_arg, errno ? strerror(errno) : "");
-				goto cleanup;
-			}
-		}
 		switch (mode) {
 		case INSTALL_M:{
 				if (verbose) {
@@ -357,7 +329,7 @@
 					     mode_arg);
 				}
 				result =
-				    semanage_module_install(sh, data, data_len);
+				    semanage_module_install_file(sh, mode_arg);
 				break;
 			}
 		case UPGRADE_M:{
@@ -367,7 +339,7 @@
 					     mode_arg);
 				}
 				result =
-				    semanage_module_upgrade(sh, data, data_len);
+				    semanage_module_upgrade_file(sh, mode_arg);
 				break;
 			}
 		case BASE_M:{
@@ -377,8 +349,7 @@
 					     mode_arg);
 				}
 				result =
-				    semanage_module_install_base(sh, data,
-								 data_len);
+				    semanage_module_install_base_file(sh, mode_arg);
 				break;
 			}
 		case REMOVE_M:{
@@ -429,9 +400,6 @@
 			}
 		}
 		commit += do_commit[mode];
-		if (mode == INSTALL_M || mode == UPGRADE_M || mode == BASE_M) {
-			munmap(data, data_len);
-		}
 		if (result < 0) {
 			fprintf(stderr, "%s:  Failed on %s!\n", argv[0],
 				mode_arg ? : "list");

[-- Attachment #3: semodule.patch.sig --]
[-- Type: application/octet-stream, Size: 72 bytes --]

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: semodule patch to use new semanage interfaces
  2008-11-07 14:41 semodule patch to use new semanage interfaces Daniel J Walsh
@ 2009-01-05 19:52 ` Joshua Brindle
  2009-01-05 19:58   ` Daniel J Walsh
  2009-01-12 20:58 ` Joshua Brindle
  1 sibling, 1 reply; 6+ messages in thread
From: Joshua Brindle @ 2009-01-05 19:52 UTC (permalink / raw)
  To: Daniel J Walsh; +Cc: SE Linux

Daniel J Walsh wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> Allows semodule to read bzip compressed policy packages directly.
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.9 (GNU/Linux)
> Comment: Using GnuPG with Fedora - http://enigmail.mozdev.org
>
> iEYEARECAAYFAkkUU5QACgkQrlYvE4MpobMHGQCdGwEl3h1ZwV92u1mfgrr3z7XT
> NGYAoIwz76N7QFdEr8I0t3ncGhbo6heq
> =raBi
> -----END PGP SIGNATURE-----
>   

I'm finally looking at these (sorry it took so long)..

I thought one part of it was suppose to make hard links to files if you 
install but after merging this patch and the compression support I try 
semodule -i /usr/share/selinux/targeted/somepolicy.pp.bz2 (I'm on F10 
and they are already bzip'd) and instead of making a hard link to the 
bz2 it looks like it writes the uncompressed file to 
/etc/selinux/targeted/modules/active/modules. Am I misunderstanding the 
intention of these patches?

--
This message was distributed to subscribers of the selinux mailing list.
If you no longer wish to subscribe, send mail to majordomo@tycho.nsa.gov with
the words "unsubscribe selinux" without quotes as the message.

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: semodule patch to use new semanage interfaces
  2009-01-05 19:52 ` Joshua Brindle
@ 2009-01-05 19:58   ` Daniel J Walsh
  2009-01-05 20:07     ` Joshua Brindle
  0 siblings, 1 reply; 6+ messages in thread
From: Daniel J Walsh @ 2009-01-05 19:58 UTC (permalink / raw)
  To: Joshua Brindle; +Cc: SE Linux

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Joshua Brindle wrote:
> Daniel J Walsh wrote:
> Allows semodule to read bzip compressed policy packages directly.

> I'm finally looking at these (sorry it took so long)..

> I thought one part of it was suppose to make hard links to files if you
> install but after merging this patch and the compression support I try
> semodule -i /usr/share/selinux/targeted/somepolicy.pp.bz2 (I'm on F10
> and they are already bzip'd) and instead of making a hard link to the
> bz2 it looks like it writes the uncompressed file to
> /etc/selinux/targeted/modules/active/modules. Am I misunderstanding the
> intention of these patches?

Originally this was the intention but it was wrong.  The problem is the
file context would start to get screwed up every where and we end up
with the /etc/selinux/targeted/modules/active/ directory looking like a
patchwork of labels.

So the patch makes a compressed copy whether or not the file is
originally compressed in the new location.

It does use the hard links for creating the snapshot directory though.

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)
Comment: Using GnuPG with Fedora - http://enigmail.mozdev.org

iEYEARECAAYFAkliZoEACgkQrlYvE4MpobMAQgCfdlq4J4KO0/wejYLYkVUhdf4K
Yn8An25Mf2zzbcIbNRUDOw09iutxfFyi
=ruHv
-----END PGP SIGNATURE-----

--
This message was distributed to subscribers of the selinux mailing list.
If you no longer wish to subscribe, send mail to majordomo@tycho.nsa.gov with
the words "unsubscribe selinux" without quotes as the message.

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: semodule patch to use new semanage interfaces
  2009-01-05 19:58   ` Daniel J Walsh
@ 2009-01-05 20:07     ` Joshua Brindle
       [not found]       ` <49626F43.9000702@redhat.com>
  0 siblings, 1 reply; 6+ messages in thread
From: Joshua Brindle @ 2009-01-05 20:07 UTC (permalink / raw)
  To: Daniel J Walsh; +Cc: SE Linux

Daniel J Walsh wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> Joshua Brindle wrote:
>   
>> Daniel J Walsh wrote:
>> Allows semodule to read bzip compressed policy packages directly.
>>     
>
>   
>> I'm finally looking at these (sorry it took so long)..
>>     
>
>   
>> I thought one part of it was suppose to make hard links to files if you
>> install but after merging this patch and the compression support I try
>> semodule -i /usr/share/selinux/targeted/somepolicy.pp.bz2 (I'm on F10
>> and they are already bzip'd) and instead of making a hard link to the
>> bz2 it looks like it writes the uncompressed file to
>> /etc/selinux/targeted/modules/active/modules. Am I misunderstanding the
>> intention of these patches?
>>     
>
> Originally this was the intention but it was wrong.  The problem is the
> file context would start to get screwed up every where and we end up
> with the /etc/selinux/targeted/modules/active/ directory looking like a
> patchwork of labels.
>
> So the patch makes a compressed copy whether or not the file is
> originally compressed in the new location.
>
> It does use the hard links for creating the snapshot directory though.
>
>   

So... what is the purpose of the *_file functions if you don't copy the 
data anymore?

I see now that the files in /etc/selinux/.../modules/active are bzip 
files but with a .pp extension, confusing.


--
This message was distributed to subscribers of the selinux mailing list.
If you no longer wish to subscribe, send mail to majordomo@tycho.nsa.gov with
the words "unsubscribe selinux" without quotes as the message.

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: semodule patch to use new semanage interfaces
       [not found]       ` <49626F43.9000702@redhat.com>
@ 2009-01-05 20:42         ` Joshua Brindle
  0 siblings, 0 replies; 6+ messages in thread
From: Joshua Brindle @ 2009-01-05 20:42 UTC (permalink / raw)
  To: Daniel J Walsh; +Cc: SE Linux, Stephen Smalley

Daniel J Walsh wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> Joshua Brindle wrote:
>   
>> Daniel J Walsh wrote:
>>     
>>> -----BEGIN PGP SIGNED MESSAGE-----
>>> Hash: SHA1
>>>
>>> Joshua Brindle wrote:
>>>  
>>>       
>>>> Daniel J Walsh wrote:
>>>> Allows semodule to read bzip compressed policy packages directly.
>>>>     
>>>>         
>>>  
>>>       
>>>> I'm finally looking at these (sorry it took so long)..
>>>>     
>>>>         
>>>  
>>>       
>>>> I thought one part of it was suppose to make hard links to files if you
>>>> install but after merging this patch and the compression support I try
>>>> semodule -i /usr/share/selinux/targeted/somepolicy.pp.bz2 (I'm on F10
>>>> and they are already bzip'd) and instead of making a hard link to the
>>>> bz2 it looks like it writes the uncompressed file to
>>>> /etc/selinux/targeted/modules/active/modules. Am I misunderstanding the
>>>> intention of these patches?
>>>>     
>>>>         
>>> Originally this was the intention but it was wrong.  The problem is the
>>> file context would start to get screwed up every where and we end up
>>> with the /etc/selinux/targeted/modules/active/ directory looking like a
>>> patchwork of labels.
>>>
>>> So the patch makes a compressed copy whether or not the file is
>>> originally compressed in the new location.
>>>
>>> It does use the hard links for creating the snapshot directory though.
>>>
>>>   
>>>       
>> So... what is the purpose of the *_file functions if you don't copy the
>> data anymore?
>>
>> I see now that the files in /etc/selinux/.../modules/active are bzip
>> files but with a .pp extension, confusing.
>>
>>     
> Because you don't know if the file you are installing is a compressed pp
> or a regular one.
>
> I want to ship compressed pp files for now on, but existing pp files are
> not compressed.  semodule should be smart enough to not care

I see now, the *_file does the same thing semodule use to do but also 
checks if the data is a bzip.

We might want to mark those old functions as deprecated since it is 
likely they won't be able to use any policy modules shipped going forward.

--
This message was distributed to subscribers of the selinux mailing list.
If you no longer wish to subscribe, send mail to majordomo@tycho.nsa.gov with
the words "unsubscribe selinux" without quotes as the message.

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: semodule patch to use new semanage interfaces
  2008-11-07 14:41 semodule patch to use new semanage interfaces Daniel J Walsh
  2009-01-05 19:52 ` Joshua Brindle
@ 2009-01-12 20:58 ` Joshua Brindle
  1 sibling, 0 replies; 6+ messages in thread
From: Joshua Brindle @ 2009-01-12 20:58 UTC (permalink / raw)
  To: Daniel J Walsh; +Cc: SE Linux

Daniel J Walsh wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
> 
> Allows semodule to read bzip compressed policy packages directly.

Merged in policycoreutils 2.0.61

--
This message was distributed to subscribers of the selinux mailing list.
If you no longer wish to subscribe, send mail to majordomo@tycho.nsa.gov with
the words "unsubscribe selinux" without quotes as the message.

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2009-01-12 20:58 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-11-07 14:41 semodule patch to use new semanage interfaces Daniel J Walsh
2009-01-05 19:52 ` Joshua Brindle
2009-01-05 19:58   ` Daniel J Walsh
2009-01-05 20:07     ` Joshua Brindle
     [not found]       ` <49626F43.9000702@redhat.com>
2009-01-05 20:42         ` Joshua Brindle
2009-01-12 20:58 ` Joshua Brindle

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.