diff options
author | Daniel Drake <dsd@gentoo.org> | 2005-05-17 12:19:57 +0000 |
---|---|---|
committer | Daniel Drake <dsd@gentoo.org> | 2005-05-17 12:19:57 +0000 |
commit | 2aa3bf48af64074f00e3623b9bea39b1b550615d (patch) | |
tree | e7403940c5976368adf8bfb155ac39a480704cd3 /sys-kernel | |
parent | modified elibtoolize calling, --force doesn't work with elibtoolize (diff) | |
download | historical-2aa3bf48af64074f00e3623b9bea39b1b550615d.tar.gz historical-2aa3bf48af64074f00e3623b9bea39b1b550615d.tar.bz2 historical-2aa3bf48af64074f00e3623b9bea39b1b550615d.zip |
Version bump. 2.6.11.8-bs5 and genpatches 11.12
Package-Manager: portage-1.589-cvs
Diffstat (limited to 'sys-kernel')
13 files changed, 45 insertions, 351 deletions
diff --git a/sys-kernel/usermode-sources/ChangeLog b/sys-kernel/usermode-sources/ChangeLog index ea38101f34a0..51267b1337e4 100644 --- a/sys-kernel/usermode-sources/ChangeLog +++ b/sys-kernel/usermode-sources/ChangeLog @@ -1,6 +1,20 @@ # ChangeLog for sys-kernel/usermode-sources # Copyright 2002-2005 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/sys-kernel/usermode-sources/ChangeLog,v 1.65 2005/04/30 00:37:43 dsd Exp $ +# $Header: /var/cvsroot/gentoo-x86/sys-kernel/usermode-sources/ChangeLog,v 1.66 2005/05/17 12:19:56 dsd Exp $ + +*usermode-sources-2.6.11-r1 (17 May 2005) + + 17 May 2005; Daniel Drake <dsd@gentoo.org> + -files/usermode-sources-2.6.CAN-2005-0400.patch, + -files/usermode-sources-2.6.CAN-2005-0749.patch, + -files/usermode-sources-2.6.CAN-2005-0736.patch, + -files/usermode-sources-2.6.CAN-2005-0750.patch, + -files/usermode-sources-2.6.74070.patch, + -files/usermode-sources-2.6.CAN-2005-0384.patch, + -files/usermode-sources-2.6.CAN-2005-0815.patch, + -files/usermode-sources-2.6.rose.patch, -usermode-sources-2.6.11.ebuild, + +usermode-sources-2.6.11-r1.ebuild: + Version bump. 2.6.11.8-bs5 and genpatches 11.12 *usermode-sources-2.6.11 (30 Apr 2005) diff --git a/sys-kernel/usermode-sources/files/digest-usermode-sources-2.6.11 b/sys-kernel/usermode-sources/files/digest-usermode-sources-2.6.11 deleted file mode 100644 index 29aa3c7c16c3..000000000000 --- a/sys-kernel/usermode-sources/files/digest-usermode-sources-2.6.11 +++ /dev/null @@ -1,2 +0,0 @@ -MD5 f00fd1b5a80f52baf9d1d83acddfa325 linux-2.6.11.tar.bz2 37075679 -MD5 940a7ec8012d361467b57177275a53a4 uml-2.6.11-bs4.patch.bz2 23530 diff --git a/sys-kernel/usermode-sources/files/digest-usermode-sources-2.6.11-r1 b/sys-kernel/usermode-sources/files/digest-usermode-sources-2.6.11-r1 new file mode 100644 index 000000000000..aa7f4a8bfe1a --- /dev/null +++ b/sys-kernel/usermode-sources/files/digest-usermode-sources-2.6.11-r1 @@ -0,0 +1,3 @@ +MD5 f00fd1b5a80f52baf9d1d83acddfa325 linux-2.6.11.tar.bz2 37075679 +MD5 fe0ccafbac98e983950cc5e0792bc7f4 genpatches-2.6-11.12-base.tar.bz2 44018 +MD5 e876f30e14aa20ad034b53559de4e7c7 uml-2.6.11.8-bs5.patch.bz2 30437 diff --git a/sys-kernel/usermode-sources/files/usermode-sources-2.6.74070.patch b/sys-kernel/usermode-sources/files/usermode-sources-2.6.74070.patch deleted file mode 100644 index 3b4ee332f9e9..000000000000 --- a/sys-kernel/usermode-sources/files/usermode-sources-2.6.74070.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- linux-2.6.10/net/sunrpc/svc.c.orig 2005-01-18 03:18:08.235362992 +0000 -+++ linux-2.6.10/net/sunrpc/svc.c 2005-01-18 03:18:28.532277392 +0000 -@@ -446,7 +446,7 @@ err_bad_auth: - err_bad_prog: - #ifdef RPC_PARANOIA - if (prog != 100227 || progp->pg_prog != 100003) -- printk("svc: unknown program %d (me %d)\n", prog, progp->pg_prog); -+ printk("svc: unknown program %d (me %d)\n", prog, serv->sv_program->pg_prog); - /* else it is just a Solaris client seeing if ACLs are supported */ - #endif - serv->sv_stats->rpcbadfmt++; diff --git a/sys-kernel/usermode-sources/files/usermode-sources-2.6.CAN-2005-0384.patch b/sys-kernel/usermode-sources/files/usermode-sources-2.6.CAN-2005-0384.patch deleted file mode 100644 index 1c7ac0efb5a9..000000000000 --- a/sys-kernel/usermode-sources/files/usermode-sources-2.6.CAN-2005-0384.patch +++ /dev/null @@ -1,36 +0,0 @@ -diff -Naru a/drivers/net/ppp_async.c b/drivers/net/ppp_async.c ---- a/drivers/net/ppp_async.c 2005-04-29 17:05:10 -07:00 -+++ b/drivers/net/ppp_async.c 2005-04-29 17:05:10 -07:00 -@@ -1000,7 +1000,7 @@ - data += 4; - dlen -= 4; - /* data[0] is code, data[1] is length */ -- while (dlen >= 2 && dlen >= data[1]) { -+ while (dlen >= 2 && dlen >= data[1] && data[1] >= 2) { - switch (data[0]) { - case LCP_MRU: - val = (data[2] << 8) + data[3]; -# This is a BitKeeper generated diff -Nru style patch. -# -# ChangeSet -# 2005/03/15 15:38:47-08:00 paulus@au1.ibm.com -# [PATCH] CAN-2005-0384: Remote Linux DoS on ppp servers -# -# Martin Schulze writes: -# -# > Ben Martel and Stephen Blackheath have discovered a denial-of-service attack -# > that a client of pppd can make that can hang the server machine. The bug is -# > in the Linux kernel 2.6 (tested on 2.6.9), but it looks like it also exists -# > in the 2.4 series. -# -# Yes, this is my bug. :( -# -# I would just do this instead: -# -# Signed-off-by: Chris Wright <chrisw@osdl.org> -# Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> -# -# drivers/net/ppp_async.c -# 2005/02/24 15:38:05-08:00 paulus@au1.ibm.com +1 -1 -# CAN-2005-0384: Remote Linux DoS on ppp servers -# diff --git a/sys-kernel/usermode-sources/files/usermode-sources-2.6.CAN-2005-0400.patch b/sys-kernel/usermode-sources/files/usermode-sources-2.6.CAN-2005-0400.patch deleted file mode 100644 index f7a572fefc81..000000000000 --- a/sys-kernel/usermode-sources/files/usermode-sources-2.6.CAN-2005-0400.patch +++ /dev/null @@ -1,33 +0,0 @@ -diff -Naru a/fs/ext2/dir.c b/fs/ext2/dir.c ---- a/fs/ext2/dir.c 2005-04-29 17:11:20 -07:00 -+++ b/fs/ext2/dir.c 2005-04-29 17:11:20 -07:00 -@@ -592,6 +592,7 @@ - goto fail; - } - kaddr = kmap_atomic(page, KM_USER0); -+ memset(kaddr, 0, chunk_size); - de = (struct ext2_dir_entry_2 *)kaddr; - de->name_len = 1; - de->rec_len = cpu_to_le16(EXT2_DIR_REC_LEN(1)); -# This is a BitKeeper generated diff -Nru style patch. -# -# ChangeSet -# 2005/03/25 17:50:01-08:00 mlafon@arkoon.net -# [PATCH] Suspected information leak (mem pages) in ext2 -# -# From: "Mathieu Lafon" <mlafon@arkoon.net> -# -# I think I have discovered a potential security problem in ext2: when a -# new directory is created, the ext2 block written to disk is not -# initialized. -# -# Included is a proposed patch for Linux 2.6 (ext2_make_empty() function): -# -# CAN-2005-0400 is assigned to this issue. -# -# Signed-off-by: Chris Wright <chrisw@osdl.org> -# -# fs/ext2/dir.c -# 2005/03/16 10:17:01-08:00 mlafon@arkoon.net +1 -0 -# Suspected information leak (mem pages) in ext2 -# diff --git a/sys-kernel/usermode-sources/files/usermode-sources-2.6.CAN-2005-0736.patch b/sys-kernel/usermode-sources/files/usermode-sources-2.6.CAN-2005-0736.patch deleted file mode 100644 index ecf4ccddb98a..000000000000 --- a/sys-kernel/usermode-sources/files/usermode-sources-2.6.CAN-2005-0736.patch +++ /dev/null @@ -1,34 +0,0 @@ -diff -Naru a/fs/eventpoll.c b/fs/eventpoll.c ---- a/fs/eventpoll.c 2005-04-29 17:08:35 -07:00 -+++ b/fs/eventpoll.c 2005-04-29 17:08:35 -07:00 -@@ -619,6 +619,7 @@ - return error; - } - -+#define MAX_EVENTS (INT_MAX / sizeof(struct epoll_event)) - - /* - * Implement the event wait interface for the eventpoll file. It is the kernel -@@ -635,7 +636,7 @@ - current, epfd, events, maxevents, timeout)); - - /* The maximum number of event must be greater than zero */ -- if (maxevents <= 0) -+ if (maxevents <= 0 || maxevents > MAX_EVENTS) - return -EINVAL; - - /* Verify that the area passed by the user is writeable */ -# This is a BitKeeper generated diff -Nru style patch. -# -# ChangeSet -# 2005/03/08 08:18:50-08:00 torvalds@ppc970.osdl.org -# epoll: return proper error on overflow condition -# -# Noted by Georgi Guninski. -# -# fs/eventpoll.c -# 2005/03/08 08:18:40-08:00 torvalds@ppc970.osdl.org +2 -1 -# epoll: return proper error on overflow condition -# -# Noted by Georgi Guninski. -# diff --git a/sys-kernel/usermode-sources/files/usermode-sources-2.6.CAN-2005-0749.patch b/sys-kernel/usermode-sources/files/usermode-sources-2.6.CAN-2005-0749.patch deleted file mode 100644 index 46beac7587df..000000000000 --- a/sys-kernel/usermode-sources/files/usermode-sources-2.6.CAN-2005-0749.patch +++ /dev/null @@ -1,92 +0,0 @@ -diff -Naru a/fs/binfmt_elf.c b/fs/binfmt_elf.c ---- a/fs/binfmt_elf.c 2005-04-29 17:13:50 -07:00 -+++ b/fs/binfmt_elf.c 2005-04-29 17:13:50 -07:00 -@@ -1008,6 +1008,7 @@ - static int load_elf_library(struct file *file) - { - struct elf_phdr *elf_phdata; -+ struct elf_phdr *eppnt; - unsigned long elf_bss, bss, len; - int retval, error, i, j; - struct elfhdr elf_ex; -@@ -1031,44 +1032,47 @@ - /* j < ELF_MIN_ALIGN because elf_ex.e_phnum <= 2 */ - - error = -ENOMEM; -- elf_phdata = (struct elf_phdr *) kmalloc(j, GFP_KERNEL); -+ elf_phdata = kmalloc(j, GFP_KERNEL); - if (!elf_phdata) - goto out; - -+ eppnt = elf_phdata; - error = -ENOEXEC; -- retval = kernel_read(file, elf_ex.e_phoff, (char *) elf_phdata, j); -+ retval = kernel_read(file, elf_ex.e_phoff, (char *)eppnt, j); - if (retval != j) - goto out_free_ph; - - for (j = 0, i = 0; i<elf_ex.e_phnum; i++) -- if ((elf_phdata + i)->p_type == PT_LOAD) j++; -+ if ((eppnt + i)->p_type == PT_LOAD) -+ j++; - if (j != 1) - goto out_free_ph; - -- while (elf_phdata->p_type != PT_LOAD) elf_phdata++; -+ while (eppnt->p_type != PT_LOAD) -+ eppnt++; - - /* Now use mmap to map the library into memory. */ - down_write(¤t->mm->mmap_sem); - error = do_mmap(file, -- ELF_PAGESTART(elf_phdata->p_vaddr), -- (elf_phdata->p_filesz + -- ELF_PAGEOFFSET(elf_phdata->p_vaddr)), -+ ELF_PAGESTART(eppnt->p_vaddr), -+ (eppnt->p_filesz + -+ ELF_PAGEOFFSET(eppnt->p_vaddr)), - PROT_READ | PROT_WRITE | PROT_EXEC, - MAP_FIXED | MAP_PRIVATE | MAP_DENYWRITE, -- (elf_phdata->p_offset - -- ELF_PAGEOFFSET(elf_phdata->p_vaddr))); -+ (eppnt->p_offset - -+ ELF_PAGEOFFSET(eppnt->p_vaddr))); - up_write(¤t->mm->mmap_sem); -- if (error != ELF_PAGESTART(elf_phdata->p_vaddr)) -+ if (error != ELF_PAGESTART(eppnt->p_vaddr)) - goto out_free_ph; - -- elf_bss = elf_phdata->p_vaddr + elf_phdata->p_filesz; -+ elf_bss = eppnt->p_vaddr + eppnt->p_filesz; - if (padzero(elf_bss)) { - error = -EFAULT; - goto out_free_ph; - } - -- len = ELF_PAGESTART(elf_phdata->p_filesz + elf_phdata->p_vaddr + ELF_MIN_ALIGN - 1); -- bss = elf_phdata->p_memsz + elf_phdata->p_vaddr; -+ len = ELF_PAGESTART(eppnt->p_filesz + eppnt->p_vaddr + ELF_MIN_ALIGN - 1); -+ bss = eppnt->p_memsz + eppnt->p_vaddr; - if (bss > len) { - down_write(¤t->mm->mmap_sem); - do_brk(len, bss - len); -# This is a BitKeeper generated diff -Nru style patch. -# -# ChangeSet -# 2005/03/25 17:50:52-08:00 akpm@osdl.org -# [PATCH] Potential DOS in load_elf_library -# -# From: Herbert Xu <herbert@gondor.apana.org.au> -# -# Yichen Xie <yxie@cs.stanford.edu> points out that load_elf_library can -# modify `elf_phdata' before freeing it. -# -# CAN-2005-0749 is assigned to this issue. -# -# Signed-off-by: Andrew Morton <akpm@osdl.org> -# Signed-off-by: Chris Wright <chrisw@osdl.org> -# -# fs/binfmt_elf.c -# 2005/03/20 16:56:41-08:00 akpm@osdl.org +17 -13 -# Potential DOS in load_elf_library -# diff --git a/sys-kernel/usermode-sources/files/usermode-sources-2.6.CAN-2005-0750.patch b/sys-kernel/usermode-sources/files/usermode-sources-2.6.CAN-2005-0750.patch deleted file mode 100644 index 7d3e37d91167..000000000000 --- a/sys-kernel/usermode-sources/files/usermode-sources-2.6.CAN-2005-0750.patch +++ /dev/null @@ -1,30 +0,0 @@ -===== net/bluetooth/af_bluetooth.c 1.40 vs edited ===== ---- 1.40/net/bluetooth/af_bluetooth.c 2005-03-18 15:07:22 +01:00 -+++ edited/net/bluetooth/af_bluetooth.c 2005-03-24 19:42:16 +01:00 -@@ -62,7 +62,7 @@ - - int bt_sock_register(int proto, struct net_proto_family *ops) - { -- if (proto >= BT_MAX_PROTO) -+ if (proto < 0 || proto >= BT_MAX_PROTO) - return -EINVAL; - - if (bt_proto[proto]) -@@ -75,7 +75,7 @@ - - int bt_sock_unregister(int proto) - { -- if (proto >= BT_MAX_PROTO) -+ if (proto < 0 || proto >= BT_MAX_PROTO) - return -EINVAL; - - if (!bt_proto[proto]) -@@ -90,7 +90,7 @@ - { - int err = 0; - -- if (proto >= BT_MAX_PROTO) -+ if (proto < 0 || proto >= BT_MAX_PROTO) - return -EINVAL; - - #if defined(CONFIG_KMOD) diff --git a/sys-kernel/usermode-sources/files/usermode-sources-2.6.CAN-2005-0815.patch b/sys-kernel/usermode-sources/files/usermode-sources-2.6.CAN-2005-0815.patch deleted file mode 100644 index d3307e63de48..000000000000 --- a/sys-kernel/usermode-sources/files/usermode-sources-2.6.CAN-2005-0815.patch +++ /dev/null @@ -1,47 +0,0 @@ -diff -Naru a/fs/isofs/inode.c b/fs/isofs/inode.c ---- a/fs/isofs/inode.c 2005-04-29 17:15:48 -07:00 -+++ b/fs/isofs/inode.c 2005-04-29 17:15:48 -07:00 -@@ -685,6 +685,8 @@ - sbi->s_log_zone_size = isonum_723 (h_pri->logical_block_size); - sbi->s_max_size = isonum_733(h_pri->volume_space_size); - } else { -+ if (!pri) -+ goto out_freebh; - rootp = (struct iso_directory_record *) pri->root_directory_record; - sbi->s_nzones = isonum_733 (pri->volume_space_size); - sbi->s_log_zone_size = isonum_723 (pri->logical_block_size); -@@ -1394,6 +1396,9 @@ - unsigned long hashval; - struct inode *inode; - struct isofs_iget5_callback_data data; -+ -+ if (offset >= 1ul << sb->s_blocksize_bits) -+ return NULL; - - data.block = block; - data.offset = offset; -# This is a BitKeeper generated diff -Nru style patch. -# -# ChangeSet -# 2005/03/25 17:45:24-08:00 torvalds@osdl.org -# [PATCH] isofs: more "corrupted iso image" error cases -# -# Michal Zalewski <lcamtuf@dione.ids.pl> discovers range checking flaws in -# iso9660 filesystem. -# -# http://marc.theaimsgroup.com/?l=bugtraq&m=111110067304783&w=2 -# -# CAN-2005-0815 is assigned to this issue. -# -# From: Linus Torvalds <torvalds@osdl.org> -# -# isofs: more "corrupted iso image" error cases -# -# Thanks to Michal Zalewski for testing. -# -# Signed-off-by: Chris Wright <chrisw@osdl.org> -# -# fs/isofs/inode.c -# 2005/03/25 15:26:02-08:00 torvalds@osdl.org +5 -0 -# isofs: more "corrupted iso image" error cases -# diff --git a/sys-kernel/usermode-sources/files/usermode-sources-2.6.rose.patch b/sys-kernel/usermode-sources/files/usermode-sources-2.6.rose.patch deleted file mode 100644 index 8592dfd51c4e..000000000000 --- a/sys-kernel/usermode-sources/files/usermode-sources-2.6.rose.patch +++ /dev/null @@ -1,33 +0,0 @@ -diff -Naru a/net/rose/rose_route.c b/net/rose/rose_route.c ---- a/net/rose/rose_route.c 2005-04-29 17:09:49 -07:00 -+++ b/net/rose/rose_route.c 2005-04-29 17:09:49 -07:00 -@@ -727,7 +727,8 @@ - } - if (rose_route.mask > 10) /* Mask can't be more than 10 digits */ - return -EINVAL; -- -+ if (rose_route.ndigis > 8) /* No more than 8 digipeats */ -+ return -EINVAL; - err = rose_add_node(&rose_route, dev); - dev_put(dev); - return err; -# This is a BitKeeper generated diff -Nru style patch. -# -# ChangeSet -# 2005/03/10 19:47:08-08:00 ralf@linux-mips.org -# [ROSE]: Fix minor security hole -# -# ROSE wasn't verifying the ndigis argument of a new route resulting in a -# minor security hole. -# -# Signed-off-by: David S. Miller <davem@davemloft.net> -# -# net/rose/rose_route.c -# 2005/03/10 19:46:52-08:00 ralf@linux-mips.org +2 -1 -# [ROSE]: Fix minor security hole -# -# ROSE wasn't verifying the ndigis argument of a new route resulting in a -# minor security hole. -# -# Signed-off-by: David S. Miller <davem@davemloft.net> -# diff --git a/sys-kernel/usermode-sources/usermode-sources-2.6.11-r1.ebuild b/sys-kernel/usermode-sources/usermode-sources-2.6.11-r1.ebuild new file mode 100644 index 000000000000..cd3abc044234 --- /dev/null +++ b/sys-kernel/usermode-sources/usermode-sources-2.6.11-r1.ebuild @@ -0,0 +1,27 @@ +# Copyright 1999-2005 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/sys-kernel/usermode-sources/usermode-sources-2.6.11-r1.ebuild,v 1.1 2005/05/17 12:19:57 dsd Exp $ + +#K_NOUSENAME="yes" +ETYPE="sources" +inherit kernel-2 +detect_version + +GPV="11.12" +GPV_SRC="mirror://gentoo/genpatches-${KV_MAJOR}.${KV_MINOR}-${GPV}-base.tar.bz2" +UML_VER="uml-2.6.11.8-bs5" + +UNIPATCH_LIST=" + ${DISTDIR}/genpatches-${KV_MAJOR}.${KV_MINOR}-${GPV}-base.tar.bz2 + ${DISTDIR}/${UML_VER}.patch.bz2" + +DESCRIPTION="Full sources for the User Mode Linux kernel" +SRC_URI="${KERNEL_URI} ${GPV_SRC} + http://www.user-mode-linux.org/~blaisorblade/patches/guest/${UML_VER}/${UML_VER}.patch.bz2" +HOMEPAGE="http://www.kernel.org/ http://user-mode-linux.sourceforge.net" +KEYWORDS="~x86" + +K_EXTRAEINFO="Since you are using UML, you may want to read the Gentoo Linux +Developer's guide to system testing with User-Mode Linux that +can be found at http://www.gentoo.org/doc/en/uml.xml" + diff --git a/sys-kernel/usermode-sources/usermode-sources-2.6.11.ebuild b/sys-kernel/usermode-sources/usermode-sources-2.6.11.ebuild deleted file mode 100644 index 5b2a4c07cc29..000000000000 --- a/sys-kernel/usermode-sources/usermode-sources-2.6.11.ebuild +++ /dev/null @@ -1,32 +0,0 @@ -# Copyright 1999-2005 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/sys-kernel/usermode-sources/usermode-sources-2.6.11.ebuild,v 1.1 2005/04/30 00:37:43 dsd Exp $ - -#K_NOUSENAME="yes" -ETYPE="sources" -inherit kernel-2 -detect_version - -UML_VER="uml-${OKV}-bs4" - -UNIPATCH_LIST="${DISTDIR}/${UML_VER}.patch.bz2 - ${FILESDIR}/${PN}-2.6.74070.patch - ${FILESDIR}/${PN}-2.6.CAN-2005-0384.patch - ${FILESDIR}/${PN}-2.6.CAN-2005-0736.patch - ${FILESDIR}/${PN}-2.6.CAN-2005-0400.patch - ${FILESDIR}/${PN}-2.6.CAN-2005-0750.patch - ${FILESDIR}/${PN}-2.6.CAN-2005-0749.patch - ${FILESDIR}/${PN}-2.6.CAN-2005-0815.patch - ${FILESDIR}/${PN}-2.6.rose.patch" - -DESCRIPTION="Full (vanilla) sources for the User Mode Linux kernel" -SRC_URI="mirror://kernel/linux/kernel/v2.6/linux-${PV}.tar.bz2 - http://www.user-mode-linux.org/~blaisorblade/patches/guest/${UML_VER}/${UML_VER}.patch.bz2" -HOMEPAGE="http://www.kernel.org/ http://user-mode-linux.sourceforge.net" -KEYWORDS="~x86" -IUSE="" - -K_EXTRAEINFO="Since you are using UML, you may want to read the Gentoo Linux -Developer's guide to system testing with User-Mode Linux that -can be fount at http://www.gentoo.org/doc/en/uml.xml" - |