net-snmp 3.9.6 → 3.9.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/FUNDING.yml +1 -0
- package/README.md +8 -0
- package/index.js +6 -2
- package/package.json +1 -1
- package/test/varbinds.js +25 -19
@@ -0,0 +1 @@
|
|
1
|
+
github: [markabrahams]
|
package/README.md
CHANGED
@@ -3301,6 +3301,14 @@ Example programs are included under the module's `example` directory.
|
|
3301
3301
|
|
3302
3302
|
* Add type constraint support for textual conventions
|
3303
3303
|
|
3304
|
+
## Version 3.9.7 - 13/07/2023
|
3305
|
+
|
3306
|
+
* Add tolerance for reading malformed 32-bit unsigned integers
|
3307
|
+
|
3308
|
+
## Version 3.9.8 - 13/01/2024
|
3309
|
+
|
3310
|
+
* Fix subtree callback termination
|
3311
|
+
|
3304
3312
|
# License
|
3305
3313
|
|
3306
3314
|
Copyright (c) 2020 Mark Abrahams <mark@abrahams.co.nz>
|
package/index.js
CHANGED
@@ -392,6 +392,7 @@ function readUint32 (buffer) {
|
|
392
392
|
if ( ! Number.isInteger(parsedInt) ) {
|
393
393
|
throw new TypeError('Value read as integer ' + parsedInt + ' is not an integer');
|
394
394
|
}
|
395
|
+
parsedInt = (parsedInt>>>0);
|
395
396
|
if ( parsedInt < MIN_UNSIGNED_INT32 || parsedInt > MAX_UNSIGNED_INT32 ) {
|
396
397
|
throw new RangeError('Read integer ' + parsedInt + ' is outside the unsigned 32-bit range');
|
397
398
|
}
|
@@ -2295,8 +2296,11 @@ function subtreeCb (req, varbinds) {
|
|
2295
2296
|
}
|
2296
2297
|
}
|
2297
2298
|
|
2298
|
-
if (varbinds.length > 0)
|
2299
|
-
req.feedCb (varbinds)
|
2299
|
+
if (varbinds.length > 0) {
|
2300
|
+
if (req.feedCb (varbinds)) {
|
2301
|
+
done = 1;
|
2302
|
+
}
|
2303
|
+
}
|
2300
2304
|
|
2301
2305
|
if (done)
|
2302
2306
|
return true;
|
package/package.json
CHANGED
package/test/varbinds.js
CHANGED
@@ -1,43 +1,49 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
var assert = require('assert');
|
5
|
-
var snmp = require('../');
|
1
|
+
const ber = require ('asn1-ber').Ber;
|
2
|
+
const assert = require('assert');
|
3
|
+
const snmp = require('../');
|
6
4
|
|
7
5
|
describe('parseInt()', function() {
|
8
6
|
describe('given a negative integer', function() {
|
9
|
-
|
7
|
+
const writer = new ber.Writer();
|
10
8
|
writer.writeInt(-3);
|
11
|
-
|
9
|
+
const reader = new ber.Reader(writer.buffer);
|
12
10
|
it('returns a negative integer', function() {
|
13
|
-
assert.equal(
|
11
|
+
assert.equal(snmp.ObjectParser.readInt32(reader), -3);
|
14
12
|
});
|
15
|
-
})
|
13
|
+
});
|
16
14
|
describe('given a positive integer', function() {
|
17
|
-
|
15
|
+
const writer = new ber.Writer();
|
18
16
|
writer.writeInt(3245689);
|
19
|
-
|
17
|
+
const reader = new ber.Reader(writer.buffer);
|
20
18
|
it('returns a positive integer', function() {
|
21
|
-
assert.equal(
|
19
|
+
assert.equal(snmp.ObjectParser.readInt32(reader), 3245689);
|
22
20
|
});
|
23
21
|
});
|
24
22
|
});
|
25
23
|
|
26
24
|
describe('parseUint()', function() {
|
27
25
|
describe('given a positive integer', function() {
|
28
|
-
|
26
|
+
const writer = new ber.Writer();
|
29
27
|
writer.writeInt(3242425);
|
30
|
-
|
28
|
+
const reader = new ber.Reader(writer.buffer);
|
31
29
|
it('returns a positive integer', function() {
|
32
|
-
assert.equal(
|
30
|
+
assert.equal(snmp.ObjectParser.readUint32(reader), 3242425);
|
33
31
|
});
|
34
|
-
})
|
32
|
+
});
|
35
33
|
describe('given a negative integer', function() {
|
36
|
-
|
34
|
+
const writer = new ber.Writer();
|
37
35
|
writer.writeInt(-3);
|
38
|
-
|
36
|
+
const reader = new ber.Reader(writer.buffer);
|
37
|
+
it('returns a positive integer', function() {
|
38
|
+
assert.equal(snmp.ObjectParser.readUint32(reader), 4294967293);
|
39
|
+
});
|
40
|
+
});
|
41
|
+
describe('given a large integer', function() {
|
42
|
+
const writer = new ber.Writer();
|
43
|
+
writer.writeInt(4294967294);
|
44
|
+
const reader = new ber.Reader(writer.buffer);
|
39
45
|
it('returns a positive integer', function() {
|
40
|
-
assert.equal(
|
46
|
+
assert.equal(snmp.ObjectParser.readUint32(reader), 4294967294);
|
41
47
|
});
|
42
48
|
});
|
43
49
|
});
|