Skip to content

Commit 9824da7

Browse files
committed
at_handler use dedicated buffer for preferences
- avoid cert_buf overwriting using preferences and custom ca
1 parent df1c36a commit 9824da7

File tree

2 files changed

+9
-5
lines changed

2 files changed

+9
-5
lines changed

UNOR4USBBridge/at_handler.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,10 @@ class CAtHandler {
8989
std::vector<std::uint8_t> se_buf;
9090
std::vector<std::uint8_t> client_cert_pem;
9191
std::vector<std::uint8_t> client_key_pem;
92+
93+
/* Used by cmds_preferences */
94+
std::vector<std::uint8_t> pref_buf;
95+
9296
CAtHandler(HardwareSerial *s);
9397
CAtHandler() = delete ;
9498
static void onWiFiEvent(WiFiEvent_t event);

UNOR4USBBridge/cmds_preferences.h

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -171,16 +171,16 @@ void CAtHandler::add_cmds_preferences() {
171171
break;
172172
case PreferenceType::PT_BLOB: {
173173
int value = atoi(parser.args[2].c_str());
174-
cert_buf = srv.inhibit_read(value);
175-
size_t offset = cert_buf.size();
174+
pref_buf = srv.inhibit_read(value);
175+
size_t offset = pref_buf.size();
176176
if(offset < value) {
177-
cert_buf.resize(value);
177+
pref_buf.resize(value);
178178
do {
179-
offset += serial->read(cert_buf.data() + offset, value - offset);
179+
offset += serial->read(pref_buf.data() + offset, value - offset);
180180
} while (offset < value);
181181
}
182182
srv.continue_read();
183-
error = String(pref.putBytes(key.c_str(), cert_buf.data(), value)) + "\r\n";
183+
error = String(pref.putBytes(key.c_str(), pref_buf.data(), value)) + "\r\n";
184184
}
185185
break;
186186
default:

0 commit comments

Comments
 (0)