mirror of
https://github.com/ossrs/srs.git
synced 2025-03-09 15:49:59 +00:00
Fix the snprintf size issue.
This commit is contained in:
parent
1ab584b2ae
commit
a71eddd56a
10 changed files with 46 additions and 17 deletions
|
|
@ -178,11 +178,15 @@ srs_error_t SrsLatestVersion::start()
|
|||
uuid_t uuid;
|
||||
uuid_generate_time(uuid);
|
||||
|
||||
char buf[32];
|
||||
// Must reserve last 1 byte for the trailing '\0', because we expect the size of uuid string is 32 bytes.
|
||||
char buf[32 + 1];
|
||||
srs_assert(16 == sizeof(uuid_t));
|
||||
|
||||
for (int i = 0; i < 16; i++) {
|
||||
snprintf(buf + i * 2, sizeof(buf), "%02x", uuid[i]);
|
||||
int r0 = snprintf(buf + i * 2, sizeof(buf) - i * 2, "%02x", uuid[i]);
|
||||
srs_assert(r0 > 0 && r0 < sizeof(buf) - i * 2);
|
||||
}
|
||||
server_id_ = string(buf, sizeof(buf));
|
||||
server_id_ = buf;
|
||||
}
|
||||
|
||||
return trd_->start();
|
||||
|
|
|
|||
|
|
@ -433,9 +433,12 @@ std::string SrsUdpMuxSocket::peer_id()
|
|||
peer_port = atoi(port_string);
|
||||
}
|
||||
|
||||
// Build the peer id.
|
||||
static char id_buf[128];
|
||||
// Build the peer id, reserve 1 byte for the trailing '\0'.
|
||||
static char id_buf[128 + 1];
|
||||
int len = snprintf(id_buf, sizeof(id_buf), "%s:%d", peer_ip.c_str(), peer_port);
|
||||
if (len <= 0 || len >= sizeof(id_buf)) {
|
||||
return "";
|
||||
}
|
||||
peer_id_ = string(id_buf, len);
|
||||
|
||||
// Update the stat.
|
||||
|
|
|
|||
|
|
@ -1386,7 +1386,7 @@ string srs_string_dumps_hex(const char* str, int length, int limit, char seperat
|
|||
int len = 0;
|
||||
for (int i = 0; i < length && i < limit && len < LIMIT; ++i) {
|
||||
int nb = snprintf(buf + len, LIMIT - len, "%02x", (uint8_t)str[i]);
|
||||
if (nb < 0 || nb >= LIMIT - len) {
|
||||
if (nb <= 0 || nb >= LIMIT - len) {
|
||||
break;
|
||||
}
|
||||
len += nb;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue