diff options
Diffstat (limited to 'debian/patches/random-fixes0009-trans-proxy-defpager-convert-to-trivfs-dynamic-class.patch')
-rw-r--r-- | debian/patches/random-fixes0009-trans-proxy-defpager-convert-to-trivfs-dynamic-class.patch | 65 |
1 files changed, 0 insertions, 65 deletions
diff --git a/debian/patches/random-fixes0009-trans-proxy-defpager-convert-to-trivfs-dynamic-class.patch b/debian/patches/random-fixes0009-trans-proxy-defpager-convert-to-trivfs-dynamic-class.patch deleted file mode 100644 index 72054805..00000000 --- a/debian/patches/random-fixes0009-trans-proxy-defpager-convert-to-trivfs-dynamic-class.patch +++ /dev/null @@ -1,65 +0,0 @@ -From fcf89e5bb006f71ecf5c46b7248216c3dee7e4b8 Mon Sep 17 00:00:00 2001 -From: Justus Winter <4winter@informatik.uni-hamburg.de> -Date: Sun, 27 Sep 2015 17:23:13 +0200 -Subject: [PATCH hurd 09/11] trans/proxy-defpager: convert to trivfs dynamic - classes and buckets - -libtrivfs contains two ways of managing more than one port class and -bucket. There is the old way of using a statically allocated array -with explicit length, and the new way with dynamically allocated -vectors. - -Converting all users to the new way of handling multiple classes -and/or buckets, we can simplify the code in libtrivfs. In many cases, -the code will be simpler and more expressive for the user. - -This also fixes a severe bug. As no classes are given to -`trivfs_startup', they are created and inserted into the dynamic -vector of classes. The helper function `allowed', however, used the -first item of the previously used static array, which is NULL. This -circumvented the typecheck, allowing the default pager protocol to be -spoken over control ports, likely resulting in a crash. - -* trans/proxy-defpager.c: Convert to dynamic classes and buckets. ---- - trans/proxy-defpager.c | 13 ++++++++++--- - 1 file changed, 10 insertions(+), 3 deletions(-) - -diff --git a/trans/proxy-defpager.c b/trans/proxy-defpager.c -index 5fe8ffd..662f269 100644 ---- a/trans/proxy-defpager.c -+++ b/trans/proxy-defpager.c -@@ -30,11 +30,14 @@ - - static mach_port_t real_defpager, dev_master; - -+/* Our port class. */ -+struct port_class *trivfs_protid_class; -+ - static error_t - allowed (mach_port_t port, int mode) - { -- struct trivfs_protid *cred = ports_lookup_port -- (0, port, trivfs_protid_portclasses[0]); -+ struct trivfs_protid *cred -+ = ports_lookup_port (0, port, trivfs_protid_class); - if (!cred) - return MIG_BAD_ID; - error_t result = (cred->po->openmodes & mode) ? 0 : EACCES; -@@ -266,8 +269,12 @@ main (int argc, char **argv) - - trivfs_fsid = getpid (); - -+ err = trivfs_add_protid_port_class (&trivfs_protid_class); -+ if (err) -+ error (1, 0, "error creating protid port class"); -+ - /* Reply to our parent. */ -- err = trivfs_startup (bootstrap, 0, 0, 0, 0, 0, &fsys); -+ err = trivfs_startup (bootstrap, 0, 0, 0, trivfs_protid_class, 0, &fsys); - mach_port_deallocate (mach_task_self (), bootstrap); - if (err) - error (4, err, "Contacting parent"); --- -2.1.4 - |