Skip to content

Commit

Permalink
device: misc cleanup
Browse files Browse the repository at this point in the history
use snprintf "just in case" where appropriate
consistently use unsigned for temp values
pass std::string by const ref rather than by value
add length check (which can't happen in practice) for memcpy
  • Loading branch information
moneromooo-monero committed Jul 4, 2018
1 parent 076b7e1 commit e389101
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 12 deletions.
6 changes: 3 additions & 3 deletions src/device/device_ledger.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -187,7 +187,7 @@ namespace hw {
void device_ledger::logCMD() {
if (apdu_verbose) {
char strbuffer[1024];
sprintf(strbuffer, "%.02x %.02x %.02x %.02x %.02x ",
snprintf(strbuffer, sizeof(strbuffer), "%.02x %.02x %.02x %.02x %.02x ",
this->buffer_send[0],
this->buffer_send[1],
this->buffer_send[2],
Expand All @@ -203,7 +203,7 @@ namespace hw {
void device_ledger::logRESP() {
if (apdu_verbose) {
char strbuffer[1024];
sprintf(strbuffer, "%.02x%.02x ",
snprintf(strbuffer, sizeof(strbuffer), "%.02x%.02x ",
this->buffer_recv[this->length_recv-2],
this->buffer_recv[this->length_recv-1]
);
Expand Down Expand Up @@ -295,7 +295,7 @@ namespace hw {

unsigned int device_ledger::exchange(unsigned int ok, unsigned int mask) {
LONG rv;
int sw;
unsigned int sw;

ASSERT_T0(this->length_send <= BUFFER_SEND_SIZE);
logCMD();
Expand Down
12 changes: 7 additions & 5 deletions src/device/log.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -45,13 +45,13 @@ namespace hw {
}
}

void log_hexbuffer(std::string msg, const char* buff, size_t len) {
void log_hexbuffer(const std::string &msg, const char* buff, size_t len) {
char logstr[1025];
buffer_to_str(logstr, sizeof(logstr), buff, len);
MDEBUG(msg<< ": " << logstr);
}

void log_message(std::string msg, std::string info ) {
void log_message(const std::string &msg, const std::string &info ) {
MDEBUG(msg << ": " << info);
}

Expand Down Expand Up @@ -122,16 +122,18 @@ namespace hw {

rct::keyV decrypt(const rct::keyV &keys) {
rct::keyV x ;
x.reserve(keys.size());
for (unsigned int j = 0; j<keys.size(); j++) {
x.push_back(decrypt(keys[j]));
}
return x;
}

static void check(std::string msg, std::string info, const char *h, const char *d, int len, bool crypted) {
static void check(const std::string &msg, const std::string &info, const char *h, const char *d, size_t len, bool crypted) {
char dd[32];
char logstr[128];

CHECK_AND_ASSERT_THROW_MES(len <= sizeof(dd), "invalid len");
memmove(dd,d,len);
if (crypted) {
CHECK_AND_ASSERT_THROW_MES(len<=32, "encrypted data greater than 32");
Expand All @@ -149,11 +151,11 @@ namespace hw {
}
}

void check32(std::string msg, std::string info, const char *h, const char *d, bool crypted) {
void check32(const std::string &msg, const std::string &info, const char *h, const char *d, bool crypted) {
check(msg, info, h, d, 32, crypted);
}

void check8(std::string msg, std::string info, const char *h, const char *d, bool crypted) {
void check8(const std::string &msg, const std::string &info, const char *h, const char *d, bool crypted) {
check(msg, info, h, d, 8, crypted);
}
#endif
Expand Down
8 changes: 4 additions & 4 deletions src/device/log.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -44,8 +44,8 @@ namespace hw {
namespace ledger {

void buffer_to_str(char *to_buff, size_t to_len, const char *buff, size_t len) ;
void log_hexbuffer(std::string msg, const char* buff, size_t len);
void log_message(std::string msg, std::string info );
void log_hexbuffer(const std::string &msg, const char* buff, size_t len);
void log_message(const std::string &msg, const std::string &info );
#ifdef DEBUG_HWDEVICE
#define TRACK printf("file %s:%d\n",__FILE__, __LINE__)
//#define TRACK MCDEBUG("ledger"," At file " << __FILE__ << ":" << __LINE__)
Expand All @@ -59,8 +59,8 @@ namespace hw {
crypto::ec_scalar decrypt(const crypto::ec_scalar &res);
rct::keyV decrypt(const rct::keyV &keys);

void check32(std::string msg, std::string info, const char *h, const char *d, bool crypted=false);
void check8(std::string msg, std::string info, const char *h, const char *d, bool crypted=false);
void check32(const std::string &msg, const std::string &info, const char *h, const char *d, bool crypted=false);
void check8(const std::string &msg, const std::string &info, const char *h, const char *d, bool crypted=false);

void set_check_verbose(bool verbose);
#endif
Expand Down

0 comments on commit e389101

Please sign in to comment.