Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Asan: Fix global ip address leak check bug. v5.0.90 #3248

Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ jobs:
- name: Run SRS regression-test
run: |
docker run --rm srs:test bash -c 'make && \
(./objs/srs -c conf/regression-test.conf; ./etc/init.d/srs status) && \
./objs/srs -c conf/regression-test.conf && \
cd 3rdparty/srs-bench && make && ./objs/srs_test -test.v'
outputs:
SRS_TEST_DONE: ok
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -204,7 +204,7 @@ jobs:
- name: Run SRS regression-test
run: |
docker run --rm srs:test bash -c 'make && \
(./objs/srs -c conf/regression-test.conf; ./etc/init.d/srs status) && \
./objs/srs -c conf/regression-test.conf && \
cd 3rdparty/srs-bench && make && ./objs/srs_test -test.v'
outputs:
SRS_UTEST_DONE: ok
Expand Down
1 change: 1 addition & 0 deletions trunk/doc/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ The changelog for SRS.

## SRS 5.0 Changelog

* v5.0, 2022-11-21, Asan: Fix global ip address leak check. v5.0.90
* v5.0, 2022-11-20, For [#2532](https://github.com/ossrs/srs/issues/2532): Windows: Support cygwin pipline and packager. v5.0.89
* v5.0, 2022-11-18, Fix [#3215](https://github.com/ossrs/srs/issues/3215): Callback: Fix bug for response string 0. v5.0.88
* v5.0, 2022-11-18, For [#2532](https://github.com/ossrs/srs/issues/2532): Windows: Replace ln by cp for windows. v5.0.87
Expand Down
20 changes: 9 additions & 11 deletions trunk/src/app/srs_app_tencentcloud.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -136,7 +136,7 @@ namespace tencentcloud_api_sign {
http_request_info[http_request_info.size() - 1] = '\n';
}
//printf("%s\nEOF\n", http_request_info.c_str());
char signed_time[SIGNLEN];
char signed_time[SIGNLEN] = {0};
int signed_time_len = snprintf(signed_time, SIGNLEN,
"%lu;%lu", time(0) - 60, time(0) + expire);
//snprintf(signed_time, SIGNLEN, "1510109254;1510109314");
Expand All @@ -148,16 +148,14 @@ namespace tencentcloud_api_sign {
.append(sha1(http_request_info.c_str(), http_request_info.size()))
.append("\n");
//printf("%s\nEOF\n", str_to_sign.c_str());
char c_signature[SIGNLEN];
snprintf(c_signature, SIGNLEN,
"q-sign-algorithm=sha1&q-ak=%s"
"&q-sign-time=%s&q-key-time=%s"
"&q-header-list=%s&q-url-param-list=%s&q-signature=%s",
secret_id.c_str(), signed_time, signed_time,
header_list.c_str(), uri_parm_list.c_str(),
hmac_sha1(signkey.c_str(), str_to_sign.c_str(),
str_to_sign.size()).c_str());
return c_signature;
std::stringstream c_signature;
c_signature << "q-sign-algorithm=sha1&q-ak=" << secret_id.c_str()
<< "&q-sign-time=" << signed_time
<< "&q-key-time=" << signed_time
<< "&q-header-list=" << header_list.c_str()
<< "&q-url-param-list=" << uri_parm_list.c_str()
<< "&q-signature=" << hmac_sha1(signkey.c_str(), str_to_sign.c_str(), str_to_sign.size()).c_str();
return c_signature.str();
}
}

Expand Down
2 changes: 1 addition & 1 deletion trunk/src/core/srs_core_version5.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,6 @@

#define VERSION_MAJOR 5
#define VERSION_MINOR 0
#define VERSION_REVISION 89
#define VERSION_REVISION 90

#endif
9 changes: 8 additions & 1 deletion trunk/src/main/srs_main_server.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,9 @@ bool _srs_config_by_env = false;
// The binary name of SRS.
const char* _srs_binary = NULL;

// Free global data, for address sanitizer.
extern void srs_free_global_system_ips();

/**
* main entrance.
*/
Expand Down Expand Up @@ -222,7 +225,9 @@ srs_error_t do_main(int argc, char** argv, char** envp)
if ((err = run_directly_or_daemon()) != srs_success) {
return srs_error_wrap(err, "run");
}


srs_free_global_system_ips();

return err;
}

Expand Down Expand Up @@ -447,6 +452,7 @@ srs_error_t run_directly_or_daemon()
int status = 0;
waitpid(pid, &status, 0);
srs_trace("grandpa process exit.");
srs_free_global_system_ips();
exit(0);
}

Expand All @@ -459,6 +465,7 @@ srs_error_t run_directly_or_daemon()

if(pid > 0) {
srs_trace("father process exit");
srs_free_global_system_ips();
exit(0);
}

Expand Down