Trevor Norris
65249ccd9b
buffer: slow buffer copy compatibility fix
...
Fix issue where SlowBuffers couldn't be passed as target to Buffer
copy().
Also included checks to see if Argument parameters are defined before
assigning their values. This offered ~3x's performance gain.
Backport of 16bbecc from master branch. Closes #4633 .
2013-01-25 10:42:38 -08:00
Ben Noordhuis
498200b87c
buffer: reject negative SlowBuffer offsets
...
Reject negative offsets in SlowBuffer::MakeFastBuffer(), it allows
the creation of buffers that point to arbitrary addresses.
Reported by Trevor Norris.
2013-01-17 01:22:11 +01:00
Trevor Norris
6772308883
buffer: Don't double-negate numeric buffer arg
...
Fix #4331
Using double negate forces values into 32bit space. Because of this
Math.ceil needs to be used. Since NaN comparisons are always false, use
that to our advantage to return 0 if it is.
Also added two tests to verify the changes.
2012-11-30 16:23:49 -08:00
koichik
fbb0ee6f24
buffer: fix byteLength with UTF-16LE
...
Fixes #4075 .
2012-10-04 18:18:15 +09:00
Karl Skomski
57d53a47e8
Use parent SlowBuffer, if any, when Buffer is sliced
...
Closes #3416
Closes #3477
2012-06-21 01:46:04 +02:00
koichik
ebbd4039bc
buffer: add UTF-16LE encoding name.
2012-05-03 23:56:17 +09:00
Ben Noordhuis
b9127eb0a5
buffer: support decoding of URL-safe base64
2012-02-21 15:33:14 +01:00
Ben Noordhuis
f101f7c9ba
buffers: honor length argument in base64 decoder
...
Honor the length argument in `buf.write(s, 0, buf.length, 'base64')`. Before
this commit, the length argument was ignored. The decoder would keep writing
until it hit the end of the buffer. Since most buffers in Node are slices of
a parent buffer (the slab), this bug would overwrite the content of adjacent
buffers.
The bug is trivially demonstrated with the following test case:
var assert = require('assert');
var a = Buffer(3);
var b = Buffer('xxx');
a.write('aaaaaaaa', 'base64');
assert.equal(b.toString(), 'xxx');
This commit coincidentally also fixes a bug where Buffer._charsWritten was not
updated for zero length buffers.
2012-02-02 19:13:56 +01:00
Ryan Dahl
d77ce4b998
Fixes #1860 . Remove process.writeError
...
Breaks a few tests in "make test-message"
2011-10-18 13:12:50 -07:00
Colton Baker
87286cc737
Fixed a lot of jslint errors.
...
Fixes #1831
2011-10-05 18:51:06 -07:00
Ben Noordhuis
d157131439
buffers: handle bad length argument in constructor
...
Coerce fractional, negative and non-numeric length arguments to numbers.
Fractional numbers are rounded up, negative numbers and non-numeric values
are set to zero.
2011-09-24 18:27:03 +02:00
koichik
526c54c979
buffer: write() should always set _charsWritten.
...
Fixes #1633 .
2011-09-08 11:47:32 +09:00
Ryan Dahl
52044fd1b1
Merge remote branch 'origin/v0.4'
...
Conflicts:
lib/net.js
test/simple/test-buffer.js
2011-09-07 17:51:33 -07:00
koichik
3e853e627e
buffer: write() should always set _charsWritten.
...
Refs #1633 .
2011-09-03 11:48:27 +09:00
koichik
96ede8cc9b
buffer: Avoid overrun with 'binary' encoding.
...
Fixes #1624 .
2011-09-02 09:56:58 +09:00
koichik
50e147bd03
Add an optional length argument to Buffer.write()
...
Fixes #243 .
Fixes #1361 .
2011-07-24 02:01:02 +09:00
Ryan Dahl
041c983290
Merge branch 'v0.4'
...
Conflicts:
deps/libev/wscript
doc/api/modules.markdown
2011-07-14 15:52:08 -07:00
koichik
5208abe723
Fix Buffer drops last null character in UTF-8
...
Reproduce:
$ node
> buf = new Buffer('\0')
<Buffer >
> buf.length
0
> buf = new Buffer(1)
<Buffer 28>
> buf.write('\0')
0
Fixes #394 .
Fixes #1210 .
2011-07-14 02:21:56 +09:00
Ben Noordhuis
8e0d788842
Test for #402 : writing base64 at position > 0 should not mangle the result.
...
This is a regression test, the bug itself was fixed in v0.3.x.
2011-07-04 17:07:50 +02:00
Ryan Dahl
59274e8a33
Merge branch 'v0.4'
...
Conflicts:
lib/crypto.js
lib/tls.js
2011-05-20 10:29:16 -07:00
Ryan Dahl
6461af1baa
Fix buffer test
2011-05-19 12:41:17 -07:00
Ryan Dahl
5e409c2f1a
makeFastBuffer should not segfault but rather throw on non-buffer
2011-05-19 12:13:48 -07:00
Ryan Dahl
85bc8d02fa
Merge branch 'v0.4'
...
Conflicts:
src/node_crypto.cc
2011-05-16 19:29:02 -07:00
Ryan Dahl
103a450d3a
Remove 'binary' encoding assert - add tests
...
Don't write large characters to buffers with binary encoding. You will be
silently injured.
2011-05-16 15:01:33 -07:00
isaacs
205b9beb6b
Merge branch 'v0.4'
...
Conflicts:
lib/tls.js
lib/url.js
src/node_version.h
test/simple/test-buffer.js
test/simple/test-url.js
2011-05-07 20:38:32 -07:00
Konstantin Käfer
5e1b7cadb4
Add Buffer::fill method to do memset
...
Fixes #477 .
2011-05-06 13:39:12 -07:00
koichik
fcc04e67c8
Fix SlowBuffer.write() with 'ucs2' throws ReferenceError.
2011-04-28 04:57:00 -04:00
Ryan Dahl
598792ba91
Merge branch 'v0.4'
...
Conflicts:
src/platform_sunos.cc
test/simple/test-os.js
2011-04-14 01:11:21 +00:00
koichik
9533e879f0
Fix Buffer.write() with UCS-2 should not be write partial char
...
closes #916 .
2011-04-13 09:55:49 -07:00
Ryan Dahl
bfa9db9dd6
Merge branch 'v0.4'
...
Conflicts:
src/node_version.h
test/simple/test-buffer.js
2011-04-03 23:42:56 -07:00
Ryan Dahl
038306a6c3
Closes GH-843. Fix SlowBuffer.prototype.slice
2011-03-29 10:47:14 -07:00
isaacs
3c9fb3ec1a
Fix invalid end handling for SlowBuffer#hexSlice
2011-03-15 11:39:11 -07:00
Ryan Dahl
247d880113
Merge branch 'v0.4'
...
Conflicts:
src/node_version.h
2011-03-14 17:45:15 -07:00
Ryan Dahl
55048cdf79
Update copyright headers
2011-03-14 17:37:05 -07:00
isaacs
0aa1a8a005
Closes GH-695 Add 'hex' encoding to Buffer
2011-02-19 19:24:23 -08:00
Ryan Dahl
0474ce6790
Revert "buffer.toString() shouldn't include null values"
...
This reverts commit 909a5b39d2 .
Will fix inside V8's String::New instead.
2011-02-15 12:07:43 -08:00
Ryan Dahl
909a5b39d2
buffer.toString() shouldn't include null values
2011-02-14 14:27:02 -08:00
isaacs
2e6a263e29
Closes GH-609 Support array-ish args to Buffer ctor
...
Any array-ish thing (whether a Buffer, an Array, or just an object with
a numeric "length") is interpreted as a list of bytes.
2011-02-07 14:13:18 -08:00
Konstantin Käfer
9e101f2b01
UCS-2 support
...
Closes GH-644.
2011-02-07 13:35:06 -08:00
Tom Hughes
0d58353d66
Don't access buffer data before initializing it.
...
Prevents valgrind from complaining and still tests that buffer data is
treated as unsigned.
2010-12-22 10:33:46 -08:00
Oleg Efimov
0665f0271e
GJSLint all simple tests exclude http-*, url, path
2010-12-05 15:41:58 -08:00
Ryan Dahl
fbdff52b44
Fix global leaks in test-buffer.js
2010-12-04 13:40:21 -08:00
Ryan Dahl
4f32a59307
Fix buffer.slice(0, 0)
2010-11-23 12:20:22 -08:00
Jorge Chamorro Bieling
c735b4663a
unbase64 skips over *any* illegal chars
2010-10-18 15:22:10 -07:00
Ryan Dahl
cf1db4f304
base64 decode should handle whitespace
2010-10-18 11:34:35 -07:00
Ryan Dahl
776754c33f
Remove process._byteLength
2010-09-17 01:06:44 -07:00
Ryan Dahl
77fc61d539
Default value for second arg of Buffer#slice
2010-09-14 15:39:27 -07:00
Ryan Dahl
efc723787a
Fix big string bug
2010-09-09 11:03:50 -07:00
Ryan Dahl
3e9f636b64
Improve long buffer test
2010-09-09 11:03:50 -07:00
Ryan Dahl
8078ed1f86
Expose fast-buffer bug in tests
2010-09-09 11:03:50 -07:00