cbor-extract 2.2.0 → 2.2.1

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.
Files changed (2) hide show
  1. package/package.json +14 -14
  2. package/src/extract.cpp +8 -1
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "cbor-extract",
3
3
  "author": "Kris Zyp",
4
- "version": "2.2.0",
4
+ "version": "2.2.1",
5
5
  "description": "Node addon for string extraction for cbor-x",
6
6
  "license": "MIT",
7
7
  "repository": {
@@ -12,12 +12,12 @@
12
12
  "install": "node-gyp-build-optional-packages",
13
13
  "recompile": "node-gyp rebuild",
14
14
  "before-publish": "prebuildify-ci download && node set-optional-deps.cjs",
15
- "prebuild": "prebuildify-platform-packages --target 20.10.0",
16
- "prebuild-win32": "prebuildify-platform-packages --target 20.10.0 && set ENABLE_V8_FUNCTIONS=false&& prebuildify-platform-packages --platform-packages --napi --target 20.10.0",
17
- "prebuild-macos": "prebuildify-platform-packages --target 20.0.0 && ENABLE_V8_FUNCTIONS=false prebuildify-platform-packages --napi --platform-packages --target 20.10.0",
18
- "prebuild-libc": "prebuildify-platform-packages --tag-libc --target 20.10.0 && prebuildify-platform-packages --platform-packages --napi --tag-libc --target 16.14.2 && ENABLE_V8_FUNCTIONS=false prebuildify-platform-packages --platform-packages --napi --tag-libc --target 20.10.0",
19
- "prebuild-libc-alpine": "prebuildify-cross --image alpine --tag-libc --target 20.10.0",
20
- "publish-all": "cd prebuilds/win32-x64 && npm publish --access public && cd ../darwin-x64 && npm publish --access public && cd ../darwin-arm64 && npm publish --access public && cd ../linux-x64 && npm publish --access public && cd ../linux-arm64 && npm publish --access public && cd ../linux-arm && npm publish --access public && cd ../.. && npm publish --access public",
15
+ "prebuild": "prebuildify-platform-packages --target 24.14.0",
16
+ "prebuild-win32": "set ENABLE_V8_FUNCTIONS=false&& prebuildify-platform-packages --platform-packages --napi --target 20.20.0",
17
+ "prebuild-macos": "prebuildify-platform-packages --target 24.14.0 && ENABLE_V8_FUNCTIONS=false prebuildify-platform-packages --napi --platform-packages --target 20.20.0",
18
+ "prebuild-libc": "prebuildify-platform-packages --tag-libc --target 24.14.0 && ENABLE_V8_FUNCTIONS=false prebuildify-platform-packages --platform-packages --napi --tag-libc --target 20.20.0",
19
+ "prebuild-libc-alpine": "ENABLE_V8_FUNCTIONS=false prebuildify-cross --image alpine --tag-libc --napi --target 20.20.0",
20
+ "publish-all": "cd prebuilds/darwin-x64 && npm publish --access public && cd ../darwin-arm64 && npm publish --access public && cd ../linux-x64 && npm publish --access public && cd ../linux-arm64 && npm publish --access public && cd ../linux-arm && npm publish --access public && cd ../.. && npm publish --access public",
21
21
  "test": "node ./index.js"
22
22
  },
23
23
  "main": "./index.js",
@@ -35,16 +35,16 @@
35
35
  "download-cbor-prebuilds": "./bin/download-prebuilds.js"
36
36
  },
37
37
  "devDependencies": {
38
- "prebuildify-platform-packages": "5.0.4",
38
+ "prebuildify-platform-packages": "5.0.5",
39
39
  "prebuildify-ci": "^1.0.5",
40
40
  "prebuildify-cross": "5.0.0"
41
41
  },
42
42
  "optionalDependencies": {
43
- "@cbor-extract/cbor-extract-darwin-arm64": "2.2.0",
44
- "@cbor-extract/cbor-extract-darwin-x64": "2.2.0",
45
- "@cbor-extract/cbor-extract-linux-arm": "2.2.0",
46
- "@cbor-extract/cbor-extract-linux-arm64": "2.2.0",
47
- "@cbor-extract/cbor-extract-linux-x64": "2.2.0",
48
- "@cbor-extract/cbor-extract-win32-x64": "2.2.0"
43
+ "@cbor-extract/cbor-extract-darwin-arm64": "2.2.1",
44
+ "@cbor-extract/cbor-extract-darwin-x64": "2.2.1",
45
+ "@cbor-extract/cbor-extract-linux-arm": "2.2.1",
46
+ "@cbor-extract/cbor-extract-linux-arm64": "2.2.1",
47
+ "@cbor-extract/cbor-extract-linux-x64": "2.2.1",
48
+ "@cbor-extract/cbor-extract-win32-x64": "2.2.1"
49
49
  }
50
50
  }
package/src/extract.cpp CHANGED
@@ -84,6 +84,9 @@ public:
84
84
  lastStringEnd = 0;
85
85
  position = startingPosition;
86
86
  source = inputSource;
87
+ if (startingPosition + firstStringSize > size) {
88
+ return unexpectedEnd(env);
89
+ }
87
90
  readString(env, firstStringSize, firstStringSize < 0x100);
88
91
  while (position < size) {
89
92
  uint8_t token = source[position++];
@@ -186,7 +189,11 @@ napi_value extractStrings(napi_env env, napi_callback_info info) {
186
189
  napi_get_value_uint32(env, args[2], &firstStringSize);
187
190
  uint8_t* source;
188
191
  size_t buffer_size;
189
- napi_get_buffer_info(env, args[3], (void**) &source, &buffer_size);
192
+ napi_status status = napi_get_buffer_info(env, args[3], (void**) &source, &buffer_size);
193
+ if (status) {
194
+ napi_throw_type_error(env, NULL, "Unexpected buffer type, expected a Buffer");
195
+ return args[0];
196
+ }
190
197
  return extractor->extractStrings(env, position, size, firstStringSize, source);
191
198
  }
192
199
  #define EXPORT_NAPI_FUNCTION(name, func) { napi_property_descriptor desc = { name, 0, func, 0, 0, 0, (napi_property_attributes) (napi_writable | napi_configurable), 0 }; napi_define_properties(env, exports, 1, &desc); }