John Marino [Mon, 13 Jul 2015 10:03:48 +0000 (12:03 +0200)]
OpenLIBM local mod: change another __fpclassify => __fpclassifyd
To avoid creating a new symbol, the original __fpclassifyd name was
retained, but I missed changing this one. The error was discovered
by a build failure of lang/spidermonkey185
John Marino [Mon, 13 Jul 2015 06:20:03 +0000 (08:20 +0200)]
xlocale: remove const qualifier from __xlocale_C_ctype
It contains a reference count that is modified by newlocale,
duplocale, freelocale.
diagnosed-by: dillon
taken-from: freebsd
Matthew Dillon [Mon, 13 Jul 2015 04:07:55 +0000 (21:07 -0700)]
kernel - Fix mlock() related panic and memory leak
* If a process exits with mlock()d pages, the pages are left wired,
causing an immediate memory leak and also leading to an assertion
and panic later on when the kernel tries to free the pages.
* The problem is due to an exit optimization which calls
pmap_remove_pages() before deleting the mappings. vm_fault_unwire()
expects the pmap to have the pages and fails to properly adjust the
wire count when it doesn't.
* Fixed by testing pmap->pm_stats.wired_count and shifting the
pmap_remove_pages() call to after the maps are removed if it is
non-zero.
Reported-by: marino via muscles panic
Sepherosa Ziehau [Mon, 13 Jul 2015 02:59:09 +0000 (10:59 +0800)]
bus: Clear device description when we set driver.
This fixes several places that driver is detached, but device desc set
by driver is not cleared, e.g. module unload.
Minor cleanup, while I'm here.
Reported-by: swildner@
John Marino [Sun, 12 Jul 2015 20:17:47 +0000 (22:17 +0200)]
OpenLIBM: Add DRAGONFLY.README to contrib
John Marino [Sun, 12 Jul 2015 20:16:29 +0000 (22:16 +0200)]
OpenLIBM: remaining local modifications
The following section is an excerpt of DRAGONFLY.README for this vendor
branch. Many of these patched issued exist in the current libm as well,
but they are masked with WARNS?=1. Other fixes adjust for differences
between DragonFly and OpenBSD. The WARNS level has been raised to 3, and
it could be raised to 4 by fixing "set-but-unused" errors.
The following files have been patched
=====================================
arch/amd64/*.S (elf note added to all assembly files)
arch/amd64/fenv.c (#include diff from OpenBSD)
arch/amd64/fenv.h (#include <sys/cdefs.h> for CDECL)
include/global/math.h (#include diff, double/float typedefs)
src/e_j0.c (full coverage)
src/e_j0f.c (full coverage, fix sign comparison mismatch)
src/e_j1.c (full coverage)
src/e_j1f.c (full coverage, fix sign comparison mismatch)
src/e_jnf.c (sign comparison mismatch)
src/e_pow.c (sign comparison mismatch)
src/e_powf.c (sign comparison mismatch)
src/e_rem_pio2f.c (sign comparison mismatch)
src/ld80/e_fmodl.c (sign comparison mismatch)
src/ld80/s_ceill.c (sign comparison mismatch)
src/ld80/s_floorl.c (sign comparison mismatch)
src/ld80/s_nextafterl.c (strong alias, explicit eval order, always true)
src/ld80/s_remquol.c (sign comparison mismatch)
src/s_lround.c (sign comparison mismatch)
src/s_lroundf.c (sign comparison mismatch)
src/s_nan.c (#include diff from OpenBSD)
src/w_drem.c (ansify prototype)
John Marino [Sun, 12 Jul 2015 20:06:59 +0000 (21:06 +0100)]
OpenLIBM: local modification - elf notes on assembly
All object files need a .note.GNU-stack elf section in order to preserve
the ability for the resulting program to run on a non-executable stack.
If a single object is missing this section, the linker will run the program
on an executable stack instead which is less secure.
The FreeBSD and NetBSD libm assembly files have these notes, but OpenBSD
does not use them, thus the need for a local modification.
John Marino [Sun, 12 Jul 2015 20:01:28 +0000 (22:01 +0200)]
Merge branch 'vendor/OPENBSD_LIBM'
John Marino [Sun, 12 Jul 2015 19:52:59 +0000 (21:52 +0200)]
Import OpenBSD's libm (trunk, 4 July 2015) to a new vendor branch
With the exception of x86_64 (as amd64), all arch-specific files have
been filtered out. A new directory called "include" has been added
to capture global and arch-specific headers for installation. Other
than that directory and those exclusions, this is an unaltered copy
of OpenBSD's libm as it existed on 4th of July, 2015.
Tomohiro Kusumi [Sun, 12 Jul 2015 03:15:34 +0000 (12:15 +0900)]
sys/vfs/hammer: Fix comments
- hammer_fsbuf_head only existed in the early days of hammer.
Tomohiro Kusumi [Sun, 12 Jul 2015 02:58:59 +0000 (11:58 +0900)]
sys/vfs/hammer: Cleanup whitespace(0x20) before tab
- Get rid of 0x20s that are being highlighted by editors
whereas other lines in hammer are aligned only by tabs.
Tomohiro Kusumi [Sun, 12 Jul 2015 02:31:53 +0000 (11:31 +0900)]
sys/vfs/hammer: Add comment on multi-master clustering
- It should note that multi-master clustering is not supported.
The original comment on multi-master clustering is from 2008.
Sepherosa Ziehau [Sun, 12 Jul 2015 15:03:46 +0000 (23:03 +0800)]
cam: Initialize counted_to_config properly in xpt_bus_register
DragonFly-bug: http://bugs.dragonflybsd.org/issues/2823
Sepherosa Ziehau [Sun, 12 Jul 2015 14:33:50 +0000 (22:33 +0800)]
acpi/pstate: Fix and cleanup 465a6ec
End of P-states MSR is not set properly in 465a6ec.
While I'm here, clean up macro names for AMD 11h related registers
and values.
Sepherosa Ziehau [Sun, 12 Jul 2015 13:39:16 +0000 (21:39 +0800)]
acpi/pstate: Since AMD 11h, 8 P-states are supported.
DragonFly-bug: http://bugs.dragonflybsd.org/issues/2814
Tomohiro Kusumi [Sat, 11 Jul 2015 15:20:42 +0000 (00:20 +0900)]
sbin/hammer: Fix comments
- The first comment on layer1 seems to be obsolete.
The big-block for layer1 metadata is always in volume0, but
the big-blocks for layer2 metadata and filesystem data could
be in any volume. This comment is from 2008 and only found
here so remove it.
- Sync the second comment on layer2 with that of kernel code.
Tomohiro Kusumi [Sat, 11 Jul 2015 15:01:00 +0000 (00:01 +0900)]
sbin/hammer: Cleanup blockmap pointer dereference
- Just to make the code look better
(than having blockmap[\nHAMMER_...]).
Tomohiro Kusumi [Sat, 11 Jul 2015 10:50:59 +0000 (19:50 +0900)]
sbin/hammer: Remove unnecessary blockmap argument
- format_freemap() does not need the second argument for blockmap.
This function sets that blockmap pointer to
&root_vol->ondisk->vol0_blockmap[4];
right before it starts to initialize blockmap anyway.
- Also passing the freemap blockmap as an argument is redundant
in terms of api since format_freemap() can access the freemap
blockmap via the first argument (root volume, as mentioned above)
given that the function knows it's looking for blockmaps[4].
Tomohiro Kusumi [Sat, 11 Jul 2015 10:37:40 +0000 (19:37 +0900)]
sbin/hammer: Make function prototype explicit
- format_undomap() is only for root volume, so it's better to have
the same first argument type as format_freemap(). It explicitly
shows that the volume is the root volume.
- Also add assertions to check the given pointer is root volume.
(it's invalid for non-root volumes to call these at least for now)
Tomohiro Kusumi [Sat, 11 Jul 2015 10:18:24 +0000 (19:18 +0900)]
sbin/hammer: Cleanup blockmap initialization
- Initialize blockmap fields in the same order as
struct definition as well as format_undomap().
François Tigeot [Sat, 11 Jul 2015 16:20:31 +0000 (18:20 +0200)]
drm: Implement set_memory_wc() and set_memory_wb()
Sepherosa Ziehau [Sat, 11 Jul 2015 13:11:57 +0000 (21:11 +0800)]
aperf: Sensor for effective CPU frequency using APERF/MPERF MSRs.
It was adapted by me to fit into cpu sensor device and utilize our
per-cpu sensor tasks.
Obtained-from: Imre Vadasz <imre@vdsz.com>
Sepherosa Ziehau [Sat, 11 Jul 2015 15:33:26 +0000 (23:33 +0800)]
sensors: Add frequency sensor type
While I'm here, fix sensor type string array.
Sepherosa Ziehau [Sat, 11 Jul 2015 14:30:44 +0000 (22:30 +0800)]
sensors: Fix value type
John Marino [Sat, 11 Jul 2015 09:52:54 +0000 (11:52 +0200)]
xlocale: Fix potential segfault
It was possible for locale and rune locale to become out of sync causing
mb* and similar functions to be called with the wrong data, including
with a null pointer. Unfortunately, this still does not solve the
gfortran testsuite failure related to newlocale usage.
Taken-from: FreeBSD SVN 264038 (2 APR 2014)
Tomohiro Kusumi [Fri, 10 Jul 2015 14:07:28 +0000 (23:07 +0900)]
sys/vfs/hammer: Add hammer_node_max_elements()
- Add inline function hammer_node_max_elements() and make
it available to userspace.
- The relation between btree node type and # of elements is
a part of ondisk definition, so it's better to have it in
the same header file.
Tomohiro Kusumi [Fri, 10 Jul 2015 13:18:48 +0000 (22:18 +0900)]
sys/vfs/hammer: Use HAMMER_BUFFERS_PER_BIGBLOCK
- It's been defined but not used and good to use it.
Tomohiro Kusumi [Thu, 9 Jul 2015 14:26:32 +0000 (23:26 +0900)]
sbin/mount_hammer: Fix indentation
Tomohiro Kusumi [Thu, 9 Jul 2015 14:10:40 +0000 (23:10 +0900)]
sbin/hammer: Enable readhammerbuf()
- Bring back #if0'd function readhammerbuf() which is a wrapper
for pread(2) for 16KB buffer.
- (writehammerbuf() has been used since the early days)
Tomohiro Kusumi [Thu, 9 Jul 2015 13:28:39 +0000 (22:28 +0900)]
sbin/hammer: Remove init_fifo_head()
- format_undomap() initializes fifo head without using this
function which has been #if0'd.
Sepherosa Ziehau [Fri, 10 Jul 2015 15:32:54 +0000 (23:32 +0800)]
acpi/pstate: Expose frequency power consumption table
Sepherosa Ziehau [Fri, 10 Jul 2015 14:06:31 +0000 (22:06 +0800)]
acpi/pstate: Increase max supported P-states
Intel Broadwell cpus could have 16 P-states.
Sepherosa Ziehau [Fri, 10 Jul 2015 13:36:08 +0000 (21:36 +0800)]
powerd: Implement mwait C-state hint adjustment
Sepherosa Ziehau [Fri, 10 Jul 2015 12:08:52 +0000 (20:08 +0800)]
powerd: Allow disable CPU power domain frequency adjustment
And update powerd.8
Matthew Dillon [Fri, 10 Jul 2015 07:37:32 +0000 (00:37 -0700)]
kernel - Fix panic during coredump
* multi-threaded coredumps were not stopping all other threads before
attempting to scan the vm_map, resulting in numerous possible panics.
* Add a new process state, SCORE, indicating that a core dump is in progress
and adjust proc_stop() and friends as well as any code which tests the
SSTOP state. SCORE overrides SSTOP.
* The coredump code actively waits for all running threads to stop before
proceeding.
* Prevent a deadlock between a SIGKILL and core dump in progress by
temporarily counting the master exit thread as a stopped thread (which
allows the coredump to proceed and finish).
Reported-by: marino
Sascha Wildner [Fri, 10 Jul 2015 06:47:28 +0000 (08:47 +0200)]
gcc5: Fix quickworld.
When copying the Makefile from gcc47, the writing of a comment line to
configargs.h about it being a generated file was removed, but the output
redirection was not adjusted to create the file from scratch.
This led to quickworld just appending to the existing header in /usr/obj
and resultant build errors.
Sascha Wildner [Fri, 10 Jul 2015 05:58:38 +0000 (07:58 +0200)]
i386 removal, part 17/x: Remove i386 code from various parts of the tree.
Sepherosa Ziehau [Sat, 4 Jul 2015 16:33:14 +0000 (00:33 +0800)]
powerd: Rework cpu and cpu power domain selection
Since some kernel threads are bound to the specific cpus, e.g.
network threads, so we need to take this into consideration when
cpus are selected to increase their performance. And cpu power
domain selection is adjusted accordingly.
Sascha Wildner [Thu, 9 Jul 2015 18:13:09 +0000 (20:13 +0200)]
Local adjustments for OpenSSL-1.0.1p.
Sascha Wildner [Thu, 9 Jul 2015 17:43:26 +0000 (19:43 +0200)]
Merge branch 'vendor/OPENSSL'
Sascha Wildner [Thu, 9 Jul 2015 17:41:59 +0000 (19:41 +0200)]
Import OpenSSL 1.0.1p.
Fixes CVE-2015-1793 (http://openssl.org/news/secadv_20150709.txt).
Sascha Wildner [Thu, 9 Jul 2015 12:57:57 +0000 (14:57 +0200)]
i386 removal, part 16/x: Remove forgotten file via 'make upgrade'.
Sascha Wildner [Wed, 8 Jul 2015 19:46:54 +0000 (21:46 +0200)]
i386 removal, part 15/x: Remove i386 specific network drivers.
Sascha Wildner [Wed, 8 Jul 2015 19:22:25 +0000 (21:22 +0200)]
i386 removal, part 14/x: Remove i386 specific code from ext2fs.
Tomohiro Kusumi [Wed, 8 Jul 2015 18:53:49 +0000 (03:53 +0900)]
sys/gnu/vfs/ext2fs: Update COPYRIGHT.INFO
- 1284f18 should have updated this file.
Sascha Wildner [Wed, 8 Jul 2015 18:57:13 +0000 (20:57 +0200)]
Remove non-existant .PATH components from a number of Makefiles.
Antonio Huete Jimenez [Sat, 30 May 2015 17:43:22 +0000 (10:43 -0700)]
dirfs - Restore old behavior for 0-refs vnodes
- Set VREF_FINALIZE on all dirfs vnodes. This way VOP_INACTIVE()
will be called on last ref, which was the behaviour before
ee173d09
Antonio Huete Jimenez [Wed, 8 Jul 2015 10:38:27 +0000 (03:38 -0700)]
testcases: Attempt to integrate POSIX IPC tests to dfregress(8)
- Tests have been split up so they run separately
Sascha Wildner [Wed, 8 Jul 2015 08:55:42 +0000 (10:55 +0200)]
kernel/hda: Add missing != NULL check around kfree().
If hdac_get_capabilities() fails, sc->streams has not been allocated, so
check for != NULL before trying to free it in the cleanup.
Reported-by: Rimvydas Jasinskas <rimvydas.jasinskas@gmail.com>
François Tigeot [Tue, 7 Jul 2015 19:15:05 +0000 (21:15 +0200)]
drm: Add linux/irqflags.h
Sascha Wildner [Tue, 7 Jul 2015 16:29:22 +0000 (18:29 +0200)]
iasl(8): Remove whitespace I overlooked in
44db1c69b6.
Tomohiro Kusumi [Tue, 7 Jul 2015 15:03:09 +0000 (00:03 +0900)]
hammer: Remove trailing whitespaces
- (Non-functional commits could make it difficult to git-blame
the history if there are too many of those)
Tomohiro Kusumi [Tue, 7 Jul 2015 10:56:34 +0000 (19:56 +0900)]
hammer: Remove trailing tabs
- (Non-functional commits could make it difficult to git-blame
the history if there are too many of those)
Tomohiro Kusumi [Tue, 7 Jul 2015 10:36:45 +0000 (19:36 +0900)]
sys/*: Fix typos
- "separate" is probably right.
- "transaction" is probably right.
Tomohiro Kusumi [Tue, 7 Jul 2015 10:35:55 +0000 (19:35 +0900)]
sys/vfs/hammer: Remove obsolete macros
- These were added in
47197d71 and once used in early days of hammer
but no longer used.
Tomohiro Kusumi [Tue, 7 Jul 2015 10:33:27 +0000 (19:33 +0900)]
sys/vfs/hammer: Rename macros for consistency
- Rename HAMMER_SHORT_OFF_ENCODE() to HAMMER_OFF_SHORT_ENCODE()
and HAMMER_LONG_OFF_ENCODE() to HAMMER_OFF_LONG_ENCODE() for
consistency with the existing macros HAMMER_OFF_SHORT_MASK
and HAMMER_OFF_LONG_MASK.
- These two are used by ENCODE() macros and haven't been used
independently elsewhere, so there is no effect to others.
(if external userspace programs are using these then those
programs are probably doing something strange)
Tomohiro Kusumi [Tue, 7 Jul 2015 10:28:32 +0000 (19:28 +0900)]
sys/vfs/hammer: Cleanups
- For better readability,
define macros in zone -> volume -> offset order and
define macros in encode -> decode order.
Tomohiro Kusumi [Tue, 7 Jul 2015 10:25:53 +0000 (19:25 +0900)]
sbin/hammer: Use HAMMER_ENCODE_XXX() to encode zone address
- Use HAMMER_ENCODE_RAW_BUFFER() instead of manual bitwise operations.
Sascha Wildner [Tue, 7 Jul 2015 09:35:28 +0000 (11:35 +0200)]
Sync ACPICA code with the Intel licensed
20150619 distribution.
Due to some issue in Intel's release procedure, the dual licensed
distribution - which we use - had not just license differences but
also code differences when comparing to the Intel licensed one.
Adjust to the code of the Intel licensed distribution.
Said issue will be reported to Intel.
This fixes a build issue in emulators/qemu-devel where iasl(8) was
wrongly crashing due to those code differences.
Reported-by: marino
François Tigeot [Sun, 5 Jul 2015 17:44:57 +0000 (19:44 +0200)]
drm/linux: Implement GENMASK()
Matthew Dillon [Mon, 6 Jul 2015 19:02:38 +0000 (12:02 -0700)]
kernel - Fix syscons cursor movement
* Recent commits broke the cursor movement test, causing
certain cursor movements to not update the screen.
* Re-enable the asynchronous update thread, whos primary
purpose is to fix stuttering sound and other interrupt
issues.
* Add a sysctl kern.syscons_async which defaults to 1
to control whether the async thread is used or not.
This can be changed at any time.
Reported-by: marino
Markus Pfeiffer [Mon, 6 Jul 2015 16:11:11 +0000 (17:11 +0100)]
btx: Fixup comment indent
sinetek [Mon, 6 Jul 2015 18:02:16 +0000 (01:02 +0700)]
Fix hangup on VirtualBox.
Tomohiro Kusumi [Mon, 6 Jul 2015 10:07:48 +0000 (19:07 +0900)]
sys/vfs/hammer: Cleanup HAMMER_ENCODE_XXX() macros
- Define HAMMER_ENCODE_XXX() macros using HAMMER_ENCODE()
which is a generic version of these.
Tomohiro Kusumi [Mon, 6 Jul 2015 09:57:29 +0000 (18:57 +0900)]
sys/vfs/hammer: Define and use HAMMER_ENCODE() on blockmap formatting
- Add HAMMER_ENCODE() which is a generic version of existing
macros HAMMER_ENCODE_{RAW_VOLUME|RAW_BUFFER|FREEMAP}().
- Use HAMMER_ENCODE() in format_blockmap() in userspace when newfs
initializes blockmap offsets. This is better in the sense that
the macro hides internal of hammer's storage address space format,
and gets rid of bitwise operations that make assumption on format.
Tomohiro Kusumi [Mon, 6 Jul 2015 09:15:15 +0000 (18:15 +0900)]
sbin/hammer: Remove panic()
- hammer userspace mostly uses err()/errx() and panic()
(which is only used once) can be replaced using these.
Sepherosa Ziehau [Sat, 4 Jul 2015 15:27:15 +0000 (23:27 +0800)]
powerd: Staticize global variables
Sepherosa Ziehau [Sat, 4 Jul 2015 15:20:52 +0000 (23:20 +0800)]
powerd: Merge TotalCpus and NCpus
Sepherosa Ziehau [Sat, 4 Jul 2015 15:13:34 +0000 (23:13 +0800)]
powerd.8: List only related kernel modules
Sepherosa Ziehau [Sat, 4 Jul 2015 14:41:43 +0000 (22:41 +0800)]
powerd: Remove unused global variable CpuCount[]
Sepherosa Ziehau [Thu, 2 Jul 2015 14:55:01 +0000 (22:55 +0800)]
x86_64: Add per-cpu mwait CX setting
Tomohiro Kusumi [Sat, 4 Jul 2015 14:16:46 +0000 (23:16 +0900)]
sbin/hammer: Remove test_volume()
- get_volume() and test_volume() are basically the same. The only
difference is get_volume() calls errx() when the volume is not
found while test_volume() returns NULL.
- The caller of test_volume() calls errx() when NULL is returned,
so test_volume() can be replaced using get_volume().
- Also note that if the volume instance is not found, there is
basically no way that the hammer userspace command can proceed
the rest of the command (similar to losing superblock in UFS).
John Marino [Sun, 5 Jul 2015 15:51:01 +0000 (17:51 +0200)]
gcc50 c++: Restore C99 after change to __LONG_LONG_SUPPORTED
The recent correction of __LONG_LONG_SUPPORTED had the undesirable
side of effect of breaking the base and dports GCC support for c++.
This patch restores it (comes from FreeBSD config), and will have to
be pushed upstream to GCC. All GCC without it (dports) now has
missing c++ functions (e.g. wcstoll, wcstoull)
Sascha Wildner [Sun, 5 Jul 2015 09:46:06 +0000 (11:46 +0200)]
<net/bpf.h>: Include <sys/param.h> for roundup2().
Reported-by: marino
Sascha Wildner [Sun, 5 Jul 2015 00:43:28 +0000 (02:43 +0200)]
kernel/uaudio: Fix weird indent.
Sascha Wildner [Sat, 4 Jul 2015 23:04:35 +0000 (01:04 +0200)]
<sys/socket.h>: Whitespace cleanup.
Sascha Wildner [Sat, 4 Jul 2015 23:00:50 +0000 (01:00 +0200)]
Remove duplicate includes in <iconv.h> and <sys/socket.h>.
François Tigeot [Sat, 4 Jul 2015 12:58:01 +0000 (14:58 +0200)]
drm/linux: Fix WARN_ONCE()
Sascha Wildner [Sat, 4 Jul 2015 11:27:26 +0000 (13:27 +0200)]
Use roundup2() from <sys/param.h> in a number of places.
John Marino [Sat, 4 Jul 2015 08:59:39 +0000 (10:59 +0200)]
Makefile.inc: Add kernel install complete message
All the targets that have an "starting" message also have a corresponding
"complete" message except the installkernel target. This is particularly
obvious when checking logs to see if kernel successfully installed, so
I'm adding that message here.
Sascha Wildner [Fri, 3 Jul 2015 23:30:00 +0000 (01:30 +0200)]
i386 removal, part 13/x: Some cleanup after pc32 platform removal.
Sascha Wildner [Fri, 3 Jul 2015 23:16:34 +0000 (01:16 +0200)]
i386 removal, part 12/x: Remove sys/platform/pc32.
Sascha Wildner [Fri, 3 Jul 2015 23:13:32 +0000 (01:13 +0200)]
i386 removal, part 11/x: Remove wrong machine/ setup in the boot Makefiles.
Several of the link targets were pointing to ${.CURDIR}/../../i386/...
which doesn't exist. This is from times when our platform-specific
headers were differently laid out and it was never noticed that after
some point, it was no longer needed.
In fact, sys/boot builds properly without all this, because:
* -m32 ensures that the i386 platform is targeted by the compiler
* Various (needed) __i386__ checks in sys/cpu/x86_64/include ensure that
even on x86_64, the basic types have the right sizes.
Confirmed by binary compare of /boot without and with the patch.
Sascha Wildner [Fri, 3 Jul 2015 23:01:40 +0000 (01:01 +0200)]
i386 removal, part 10/x: Fixes in sys/boot to compile without platform/pc32.
John Marino [Sat, 4 Jul 2015 07:29:50 +0000 (09:29 +0200)]
iconv sync 11/11: Use macro like FreeBSD (1 file) to eliminate diff
John Marino [Sat, 4 Jul 2015 07:15:01 +0000 (09:15 +0200)]
iconv sync 10/x: FreeBSD SVN 258316 + 283406 + 283418
SVN 258316: Bug fixes in iconv(3) UTF-7 support.
- Add ' to the list of directly encoded characters and * to the list of
optionally directly encoded characters as per RFC 2152.
- In _citrus_UTF7_mbtoutf16 on end of input when the next output character
has only been partially decoded, save a copy of the buffer of input
characters (not just its length). On the next call with more input
characters this buffer is reprocessed together with the new input to
form a fully decoded output character.
- At the end of a base64 encoded sequence fully discard '-' (BASE64_OUT)
by decrementing psenc->chlen and i. This is needed to make room in
psenc->ch (input buffer) in case the next input character starts a new
base64 encoded sequence. And also, if this is the end of input and no
output character can be returned, this brings the encoder in the initial
state as indicated by _citrus_UTF7_stdenc_get_state_desc_generic which
is used by the caller to distinguish between no output and partial
output.
- In _citrus_UTF7_mbrtowc_priv pass the s parameter (input pointer)
directly to _citrus_UTF7_mbtoutf16 instead of a copy (s0). This way s
is updated correctly in case of errors.
- In _citrus_UTF7_mbrtowc_priv when called with psenc->surrogate set
(previous call did not have enough input), retrieve the previously
decoded UTF-16 character fr
SVN 283406: Fix decoding of UTF-7 when a base64 encoded chunk appears at
the end of the input buffer.
_citrus_UTF7_mbtoutf16 stored the decoder state at the beginning so it
could restore this state on an incomplete character such that the next
call would restart the decoding. The problem was that "-" (end of base64
mode) at the end of a string was also treated as an incomplete character
but was also removed from the state buffer. So the initial state would be
restored (with base64 mode) and the next call would no longer see the "-"
so it continued in base64 mode.
This state saving/restoring isn't needed here. It's already handled
elsewhere (citrus_iconv_std.c:_citrus_iconv_std_iconv_convert) so just
remove it.
Also initialise *nresult.
SVN 283418: (continued)
When only 2 bytes can be read from a 4 byte UTF-16 character in a base64
encoded chunk of a UTF-7 string, treat that as an incomplete character and
return an error instead of a shift sequence and no error.
Also check that the low 2 bytes have a valid value.
John Marino [Sat, 4 Jul 2015 07:02:34 +0000 (09:02 +0200)]
iconv sync 9/x: FreeBSD SVN 260003
In libiconv i18n modules, surround the unused static
_citrus_xxx_pack_state() and _citrus_xxx_unpack_state() functions
with #if 0 blocks for now
John Marino [Fri, 3 Jul 2015 23:12:37 +0000 (01:12 +0200)]
iconv sync 8/x: FreeBSD SVN 281550
Remove the const qualifier from iconv(3) to comply with POSIX:
http://pubs.opengroup.org/onlinepubs/
9699919799/functions/iconv.html
Adjust all code that calls iconv
Note: The libcpp Makefile cflag was added because the host iconv.h
header was getting pulled in. This always should have been the
src version of iconv.h, but the error wasn't exposed until now.
John Marino [Fri, 3 Jul 2015 22:19:27 +0000 (00:19 +0200)]
iconv sync 7/x: FreeBSD SVN 281798
Fix improbable memory leak in _citrus_prop_read_str()
John Marino [Fri, 3 Jul 2015 22:14:00 +0000 (00:14 +0200)]
iconv sync 6/x: FreeBSD SVN 279404
Avoid lookup of CODESET aliases using unitialized path. We do not use
iconv.alias file so avoid using the vestiges of the code that do.
John Marino [Fri, 3 Jul 2015 22:06:32 +0000 (00:06 +0200)]
iconv sync 5/x: FreeBSD SVN 269529 + 269530 + 275805
- Add xrefs for other functions (in man page, then fix ordering)
- Fix incorrect type of "invalids" argument in __iconv() prototype
John Marino [Fri, 3 Jul 2015 22:00:45 +0000 (00:00 +0200)]
iconv sync 4/x: FreeBSD SVN 267438
iconv_open: initialize ci_ilseq_invalid field of _citrus_iconv_shared
struct after allocation with malloc
iconv_list: reduce a memory leak by copying strings only once
John Marino [Fri, 3 Jul 2015 21:54:27 +0000 (23:54 +0200)]
iconv sync 3/x: FreeBSD SVN 267437
Replace malloc+memset with calloc
John Marino [Fri, 3 Jul 2015 21:40:58 +0000 (23:40 +0200)]
iconv sync 2/x: FreeBSD SVN 263986
- In the libiconv module for ISO 2022, restore the original order of the
fields of a private struct such that variables of this type are
initialized correctly. This fixes conversion from ISO 2022
- In the libiconv module for EUC-TW, replace 2^cs with 1<<cs. This fixes
conversion from EUC-TW
- Synchronize iconv code from NetBSD. In most cases this only updates the
RCS id because the changes are already there or are NetBSD specific.
* citris_csmapper.c : Add a comment
* citrus_db_factory.c : Remove put16()
* citrus_iconv.c : Return EINVAL on error
* citrus_mapper.c : Return EINVAL on error
* citrus_stdenc.c : Return EINVAL on error
* citrus_memstream.c : Fix type of variable
* citrus_prop.h : Sync definition of _CITRUS_PROP_HINT_END
* citrus_mapper_std.c : Plug memory leak
Obtained from: NetBSD
John Marino [Fri, 3 Jul 2015 21:18:52 +0000 (23:18 +0200)]
iconv sync 1/x: FreeBSD SVN 262441
Consistently pass around context information using a simple pointer.
This fixes some dereferencing bugs in Chinese character set conversions.
Matthew Dillon [Sat, 4 Jul 2015 04:55:10 +0000 (21:55 -0700)]
tmpfs - Fix write-append/mmap-read race
* tmpfs_write() was not extending the target file atomically with the
write via a file node lock. Although the vnode is locked exclusively,
this only prevents read() and write() related races. lseek() and memory
mapped reads could still race.
* Adjust the NODE LOCK to cover the entire tmpfs_write() operation. This
fixes races against lseek() or stat() which would otherwise allow the
new post-append file size to be returned before the write completes.
-Matt
Reported-by: Ben Woolley <tautolog@gmail.com>
François Tigeot [Fri, 3 Jul 2015 20:21:00 +0000 (22:21 +0200)]
drm/i915: Sync with Linux 3.14 a tiny bit
The get_page() and set_pages_uc() Linux functions have been
implemented, we can use them.
Tomohiro Kusumi [Fri, 3 Jul 2015 13:51:23 +0000 (22:51 +0900)]
sbin/hammer: Use const char* for string literal args
Tomohiro Kusumi [Fri, 3 Jul 2015 13:50:45 +0000 (22:50 +0900)]
sys/vfs/hammer: Change "xxx-map" to "xxxmap"
- "xxxmap"s seem to be canonical terms rather than "xxx-map"s
where "xxx"s are name of zones.
- This commit only changes comments. Variable names and other
comments, etc already have "xxxmap".
Sascha Wildner [Fri, 3 Jul 2015 12:35:07 +0000 (14:35 +0200)]
<sys/lock.h>: Fix comment typo.
Submitted-by: Yellow Rabbit <yrabbit@sdf.lonestar.org>