winevt_c 0.4.6 → 0.4.7.rc
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.
- checksums.yaml +4 -4
- data/ext/winevt/winevt_utils.cpp +10 -15
- data/lib/winevt/version.rb +1 -1
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: daebe6fe343ceb5ee6a226edd4528a9aa2540c9adbb502738a483d8d30f18302
|
4
|
+
data.tar.gz: cf3a4619ee6294496ebb4690afcc82f64c4adccab8633c47035757789c67df52
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e0e0154f80009838480068032ddc7e30a0e1d734fa5d0d322829c039048c0ba1f12f6ba2fce0002029db3b6dad510d6ea6e226ff6e090ba8b222c6413e2e0ef3
|
7
|
+
data.tar.gz: 606760e22e450fe632053055278a755af7438b72772dba82c270b16bd8d2ca60eb2c480f4bf81ab44a8b904625f3056717970de7fe067e765b60717aabfa3198
|
data/ext/winevt/winevt_utils.cpp
CHANGED
@@ -2,6 +2,7 @@
|
|
2
2
|
#include <sddl.h>
|
3
3
|
#include <stdlib.h>
|
4
4
|
#include <string>
|
5
|
+
#include <memory>
|
5
6
|
|
6
7
|
char*
|
7
8
|
wstr_to_mbstr(UINT cp, const WCHAR *wstr, int clen)
|
@@ -23,20 +24,17 @@ void free_allocated_mbstr(const char* str)
|
|
23
24
|
VALUE
|
24
25
|
wstr_to_rb_str(UINT cp, const WCHAR *wstr, int clen)
|
25
26
|
{
|
26
|
-
char *ptr;
|
27
27
|
int len = WideCharToMultiByte(cp, 0, wstr, clen, nullptr, 0, nullptr, nullptr);
|
28
|
-
|
29
|
-
WideCharToMultiByte(cp, 0, wstr, clen, ptr, len, nullptr, nullptr);
|
30
|
-
|
31
|
-
VALUE str = rb_utf8_str_new_cstr(ptr);
|
32
|
-
xfree(ptr);
|
28
|
+
std::unique_ptr<char[]> ptr(new char[len]);
|
29
|
+
WideCharToMultiByte(cp, 0, wstr, clen, ptr.get(), len, nullptr, nullptr);
|
30
|
+
VALUE str = rb_utf8_str_new_cstr(ptr.get());
|
33
31
|
|
34
32
|
return str;
|
35
33
|
}
|
36
34
|
|
37
35
|
WCHAR* render_event(EVT_HANDLE handle, DWORD flags)
|
38
36
|
{
|
39
|
-
|
37
|
+
std::unique_ptr<WCHAR[]> buffer(new WCHAR[0]);
|
40
38
|
ULONG bufferSize = 0;
|
41
39
|
ULONG bufferSizeNeeded = 0;
|
42
40
|
ULONG status, count;
|
@@ -45,9 +43,8 @@ WCHAR* render_event(EVT_HANDLE handle, DWORD flags)
|
|
45
43
|
|
46
44
|
do {
|
47
45
|
if (bufferSizeNeeded > bufferSize) {
|
48
|
-
free(buffer);
|
49
46
|
bufferSize = bufferSizeNeeded;
|
50
|
-
buffer
|
47
|
+
buffer.reset(new WCHAR[bufferSize]);
|
51
48
|
if (buffer == nullptr) {
|
52
49
|
status = ERROR_OUTOFMEMORY;
|
53
50
|
bufferSize = 0;
|
@@ -60,7 +57,7 @@ WCHAR* render_event(EVT_HANDLE handle, DWORD flags)
|
|
60
57
|
handle,
|
61
58
|
flags,
|
62
59
|
bufferSize,
|
63
|
-
buffer,
|
60
|
+
buffer.get(),
|
64
61
|
&bufferSizeNeeded,
|
65
62
|
&count) != FALSE) {
|
66
63
|
status = ERROR_SUCCESS;
|
@@ -84,10 +81,7 @@ WCHAR* render_event(EVT_HANDLE handle, DWORD flags)
|
|
84
81
|
rb_raise(rb_eWinevtQueryError, "ErrorCode: %ld\nError: %s\n", status, RSTRING_PTR(errmsg));
|
85
82
|
}
|
86
83
|
|
87
|
-
result = _wcsdup(buffer);
|
88
|
-
|
89
|
-
if (buffer)
|
90
|
-
xfree(buffer);
|
84
|
+
result = _wcsdup(buffer.get());
|
91
85
|
|
92
86
|
return result;
|
93
87
|
}
|
@@ -177,7 +171,8 @@ VALUE get_values(EVT_HANDLE handle)
|
|
177
171
|
if (pRenderedValues[i].StringVal == nullptr) {
|
178
172
|
rb_ary_push(userValues, rb_utf8_str_new_cstr("(NULL)"));
|
179
173
|
} else {
|
180
|
-
|
174
|
+
std::wstring wStr(pRenderedValues[i].StringVal);
|
175
|
+
rbObj = wstr_to_rb_str(CP_UTF8, wStr.c_str(), -1);
|
181
176
|
rb_ary_push(userValues, rbObj);
|
182
177
|
}
|
183
178
|
break;
|
data/lib/winevt/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: winevt_c
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.7.rc
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Hiroshi Hatake
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-07-
|
11
|
+
date: 2019-07-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -133,9 +133,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
133
133
|
version: '2.4'
|
134
134
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
135
135
|
requirements:
|
136
|
-
- - "
|
136
|
+
- - ">"
|
137
137
|
- !ruby/object:Gem::Version
|
138
|
-
version:
|
138
|
+
version: 1.3.1
|
139
139
|
requirements: []
|
140
140
|
rubyforge_project:
|
141
141
|
rubygems_version: 2.7.3
|