-----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-----
--- 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:
semodule.patch.sig
Description: Binary data