Skip to content

Commit fa9efd6

Browse files
author
Filippo Mutta
committed
Null terminated all respBuffers
1 parent 1f362b0 commit fa9efd6

File tree

4 files changed

+21
-19
lines changed

4 files changed

+21
-19
lines changed

examples/cpp/Camera/camera_max_resolution.cpp

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -23,13 +23,11 @@ int main() {
2323
auto videoIn = videoQueue->get<dai::ImgFrame>();
2424
if(videoIn == nullptr) continue;
2525

26-
videoIn->getCvFrame();
27-
std::cout << "Got frame" << std::endl;
28-
//cv::imshow("video", videoIn->getCvFrame());
26+
cv::imshow("video", videoIn->getCvFrame());
2927

30-
//if(cv::waitKey(1) == 'q') {
31-
// break;
32-
//}
28+
if(cv::waitKey(1) == 'q') {
29+
break;
30+
}
3331
}
3432

3533
return 0;

examples/cpp/Camera/camera_output.cpp

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,21 +13,20 @@ int main() {
1313

1414
// Create nodes
1515
auto cam = pipeline.create<dai::node::Camera>()->build();
16-
auto videoQueue = cam->requestOutput(std::make_pair(4096, 2160))->createOutputQueue();
17-
//auto videoQueue = cam->requestOutput(std::make_pair(2048, 1556))->createOutputQueue();
16+
auto videoQueue = cam->requestOutput(std::make_pair(640, 400))->createOutputQueue();
1817

1918
// Start pipeline
2019
pipeline.start();
2120

2221
while(true) {
2322
auto videoIn = videoQueue->get<dai::ImgFrame>();
2423
if(videoIn == nullptr) continue;
25-
videoIn->getCvFrame();
26-
/* cv::imshow("video", videoIn->getCvFrame());
24+
25+
cv::imshow("video", videoIn->getCvFrame());
2726

2827
if(cv::waitKey(1) == 'q') {
2928
break;
30-
}*/
29+
}
3130
}
3231

3332
return 0;

less

Lines changed: 0 additions & 1 deletion
This file was deleted.

src/device/DeviceGate.cpp

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -95,8 +95,9 @@ bool DeviceGate::isOkay() {
9595
return false;
9696
}
9797

98-
char *respBuffer = new char[request.RequestSize];
98+
char *respBuffer = new char[request.RequestSize + 1];
9999
XLinkPlatformGateRead(respBuffer, request.RequestSize);
100+
respBuffer[request.RequestSize]= '\0';
100101

101102
bool result = nlohmann::json::parse(respBuffer)["status"].get<bool>();
102103
delete[] respBuffer;
@@ -123,8 +124,9 @@ Version DeviceGate::getVersion() {
123124
return Version{0, 0, 0};
124125
}
125126

126-
char *respBuffer = new char[request.RequestSize];
127+
char *respBuffer = new char[request.RequestSize + 1];
127128
XLinkPlatformGateRead(respBuffer, request.RequestSize);
129+
respBuffer[request.RequestSize]= '\0';
128130

129131
auto result = nlohmann::json::parse(respBuffer)["version_gate"].get<std::string>();
130132
delete[] respBuffer;
@@ -155,8 +157,9 @@ DeviceGate::VersionInfo DeviceGate::getAllVersion() {
155157
return {};
156158
}
157159

158-
char *respBuffer = new char[request.RequestSize];
160+
char *respBuffer = new char[request.RequestSize + 1];
159161
XLinkPlatformGateRead(respBuffer, request.RequestSize);
162+
respBuffer[request.RequestSize]= '\0';
160163
auto result = nlohmann::json::parse(respBuffer);
161164
delete[] respBuffer;
162165

@@ -233,8 +236,9 @@ bool DeviceGate::createSession(bool exclusive) {
233236
XLinkPlatformGateWrite((void*)createSessionBody.dump().c_str(), createSessionBody.dump().size());
234237

235238
XLinkPlatformGateRead(&request, sizeof(request));
236-
char *respBuffer = new char[request.RequestSize];
239+
char *respBuffer = new char[request.RequestSize + 1];
237240
XLinkPlatformGateRead(respBuffer, request.RequestSize);
241+
respBuffer[request.RequestSize]= '\0';
238242
auto resp = nlohmann::json::parse(respBuffer);
239243
delete[] respBuffer;
240244
spdlog::debug("DeviceGate createSession response: {}", resp.dump());
@@ -457,8 +461,9 @@ DeviceGate::SessionState DeviceGate::getState() {
457461
return SessionState::ERROR_STATE;
458462
}
459463

460-
char *respBuffer = new char[request.RequestSize];
464+
char *respBuffer = new char[request.RequestSize + 1];
461465
XLinkPlatformGateRead(respBuffer, request.RequestSize);
466+
respBuffer[request.RequestSize]= '\0';
462467
auto resp = nlohmann::json::parse(respBuffer);
463468
delete[] respBuffer;
464469
spdlog::trace("DeviceGate getState response: {}", resp.dump());
@@ -512,13 +517,14 @@ std::optional<std::vector<uint8_t>> DeviceGate::getFile(const std::string& fileU
512517
return std::nullopt;
513518
}
514519

515-
char *respBuffer = new char[request.RequestSize];
520+
char *respBuffer = new char[request.RequestSize + 1];
516521
XLinkPlatformGateRead(respBuffer, request.RequestSize);
522+
respBuffer[request.RequestSize]= '\0';
517523
auto resp = nlohmann::json::parse(respBuffer);
518524
delete[] respBuffer;
519525

520526
filename = resp["filename"].get<std::string>();
521-
std::vector<uint8_t> fileData(resp["data"]);
527+
std::vector<uint8_t> fileData(resp["data"].get<std::vector<uint8_t>>());
522528

523529
spdlog::debug("File download successful. Filename: {}", filename);
524530
return fileData;

0 commit comments

Comments
 (0)