summaryrefslogtreecommitdiff
path: root/security/skip/files/patch-bv
diff options
context:
space:
mode:
Diffstat (limited to 'security/skip/files/patch-bv')
-rw-r--r--security/skip/files/patch-bv189
1 files changed, 155 insertions, 34 deletions
diff --git a/security/skip/files/patch-bv b/security/skip/files/patch-bv
index 92b7bdc28136..f5660002307e 100644
--- a/security/skip/files/patch-bv
+++ b/security/skip/files/patch-bv
@@ -1,39 +1,160 @@
-diff -ur --unidirectional-new-file skipsrc-1.0.orig/skip/keymgrd/skip_log.C work.new/skip/keymgrd/skip_log.C
---- skipsrc-1.0.orig/skip/keymgrd/skip_log.C Fri Oct 25 13:12:50 1996
-+++ work.new/skip/keymgrd/skip_log.C Mon Mar 8 21:33:38 1999
-@@ -60,7 +60,7 @@
- strcpy(outbuf,buf);
- }
+diff -ur --unidirectional-new-file skipsrc-1.0.orig/skip/freebsd/skip_wrapper.c work.new/skip/freebsd/skip_wrapper.c
+--- skipsrc-1.0.orig/skip/freebsd/skip_wrapper.c Fri Oct 25 13:12:43 1996
++++ work.new/skip/freebsd/skip_wrapper.c Tue Jan 25 16:22:40 2000
+@@ -66,55 +66,113 @@
+ #include <skip_es.h>
+ #include <skip_if.h>
--FILE *skip_log_fp = NULL;
-+int skip_log_syslog = 0;
++#define SKIP_CDEV_MAJOR 142
++#define SKIP_NUM_MINOR 16
++static struct cdevsw skip_cdevsw = {
++ /* open */ skip_ifopen,
++ /* close */ skip_ifclose,
++ /* read */ skip_ifread,
++ /* write */ skip_ifwrite,
++ /* ioctl */ skip_ifioctl,
++#if __FreeBSD_version < 400011
++ /* stop */ nullstop,
++ /* reset */ noreset,
++ /* devtotty */ nodevtotty,
++#endif
++ /* poll */ skip_ifpoll,
++ /* mmap */ nommap,
++ /* strategy */ nostrategy,
++ /* name */ "skip",
++#if __FreeBSD_version < 400011
++ /* maj */ NULL
++#else
++ /* maj */ SKIP_CDEV_MAJOR,
++ /* dump */ nodump,
++ /* psize */ nopsize,
++ /* flags */ 0,
++ /* bmaj */ -1
++#endif
++};
- void skip_log(int severity, char *control,...)
- {
-@@ -71,15 +71,15 @@
- get_time(buf);
- va_start(va,control);
+-/*
+- * SunOS 4.1.x loadable driver wrapper for the SKIP module
+- */
+-extern char skip_module_name[];
++#if __FreeBSD_version < 400011
++static struct cdevsw *old_dev;
++static u_long skip_major;
++static dev_t dev;
++#else
++static u_long skip_major = SKIP_CDEV_MAJOR;
++static dev_t devs[SKIP_NUM_MINOR];
++#endif
-- if (skip_log_fp)
-- out = skip_log_fp;
-- else if (severity == SKIP_NOTICE)
-- out=stdout;
-- else
-- out=stderr;
+ /*
+- * Module linkage information for the kernel.
++ * Handle loading and unloading of the SKIP module.
+ */
+-extern int nulldev();
-
-- fprintf(out,"%s",buf);
-- vfprintf(out, control,va);
-- fprintf(out,"\n");
-- fflush(out);
-+ if (skip_log_syslog) {
-+ vsyslog(severity, control, va);
-+ } else {
-+ out = (severity == SKIP_NOTICE) ? stdout : stderr;
-+ fprintf(out, "%s",buf);
-+ vfprintf(out, control, va);
-+ fprintf(out, "\n");
-+ fflush(out);
-+ }
-+ va_end(va);
- }
+-struct cfdriver skipcd=
+- { NULL, "skip", NULL, NULL, DV_DULL, 0 };
+-
+-struct cdevsw skipdevsw = {
+- skip_ifopen, skip_ifclose, skip_ifread, skip_ifwrite, skip_ifioctl,
+- NULL, NULL, NULL, skip_ifselect, NULL, NULL
+-};
+-
+-MOD_DEV("skipmod", LM_DT_CHAR, -1, (void *)&skipdevsw)
+-
+-extern int skip_init(), skip_uninit();
+-
+-/*ARGSUSED*/
+-int
+-skipmod_load(struct lkm_table *lkmtp, int cmd)
++static int
++skip_mod_event(module_t mod, int event, void *data)
+ {
+-
+- int rc;
+- rc = skip_init();
+- if (rc != 0) {
+- return (rc);
++ int error = 0;
++#if __FreeBSD_version >= 400011
++ int minor;
++#endif
+
++ switch (event) {
++ case MOD_LOAD:
++
++ /* Add character device */
++#if __FreeBSD_version < 400011
++ dev = (dev_t)-1;
++ if ((error = cdevsw_add(&dev, &skip_cdevsw, &old_dev)) != 0) {
++ log(LOG_ERR, "skip: can't add device\n");
++ break;
++ }
++ skip_major = major(dev);
++#else
++ devs[0] = make_dev(&skip_cdevsw, 0,
++ UID_ROOT, GID_WHEEL, 0644, "skip_key");
++ for (minor = 1; minor < SKIP_NUM_MINOR; minor++) {
++ devs[minor] = make_dev(&skip_cdevsw, minor,
++ UID_ROOT, GID_WHEEL, 0644, "skip%d", minor);
++ }
++#endif
++
++ /* Initialize SKIP itself */
++ if ((error = skip_init()) != 0) {
++ /* XXX should remove char device */
++ log(LOG_ERR, "skip: init failed\n");
++ break;
++ }
++ log(LOG_INFO, "skip: device major=%lu, driver loaded\n",
++ skip_major);
++ break;
++
++ case MOD_UNLOAD:
++
++ /* Uninitialize SKIP */
++ if ((error = skip_uninit()) != 0) {
++ log(LOG_INFO, "skip: uninit failed\n");
++ break;
++ }
++
++ /* Replace original device driver (if any) */
++#if __FreeBSD_version < 400011
++ dev = makedev(skip_major, 0);
++ (void) cdevsw_add(&dev, old_dev, NULL);
++#else
++ for (minor = 0; minor < SKIP_NUM_MINOR; minor++)
++ destroy_dev(devs[minor]);
++#endif
++ break;
++
++ default:
++ error = EOPNOTSUPP;
++ break;
+ }
+- uprintf("skip: driver loaded\n");
+- return (0);
++ return(error);
+ }
+
+-skipmod_unload(struct lkm_table *lkmtp, int cmd)
+-{
+-
+- int rc;
+- rc = skip_uninit();
+- if (rc == 0) {
+- uprintf("skip: driver unloaded\n");
+- }
+- return (rc);
+-}
++static moduledata_t skip_mod = {
++ "skip",
++ skip_mod_event,
++ NULL
++};
++DECLARE_MODULE(skip, skip_mod, SI_SUB_PROTO_END, SI_ORDER_MIDDLE);
+
+-xxxinit(struct lkm_table *lkmtp, int cmd, int ver)
+-{
+- DISPATCH(lkmtp, cmd, ver, skipmod_load, skipmod_unload, nosys);
+-}