diff options
| author | Ilia K <ki.stfu@gmail.com> | 2015-02-27 19:43:08 +0000 |
|---|---|---|
| committer | Ilia K <ki.stfu@gmail.com> | 2015-02-27 19:43:08 +0000 |
| commit | 686b1fe65ae90f531d5010b3c6b47b479d4b7ccd (patch) | |
| tree | 5f634785f9fc1e7a88b587c29d43b13bae9afc2c /lldb/source/Host/common/SocketAddress.cpp | |
| parent | 79e6c74981f4755ed55b38175d8cd34ec91395b1 (diff) | |
| download | bcm5719-llvm-686b1fe65ae90f531d5010b3c6b47b479d4b7ccd.tar.gz bcm5719-llvm-686b1fe65ae90f531d5010b3c6b47b479d4b7ccd.zip | |
Fix FileSpec::GetPath to return null-terminated strings
Summary:
Before this fix the FileSpec::GetPath() returned string which might be without '\0' at the end.
It could have happened if the size of buffer for path was less than actual path.
Test case:
```
FileSpec test("/path/to/file", false);
char buf[]="!!!!!!";
test.GetPath(buf, 3);
```
Before fix:
```
233 FileSpec test("/path/to/file", false);
234 char buf[]="!!!!!!";
235 test.GetPath(buf, 3);
236
-> 237 if (core_file)
238 {
239 if (!core_file.Exists())
240 {
(lldb) print buf
(char [7]) $0 = "/pa!!!"
```
After fix:
```
233 FileSpec test("/path/to/file", false);
234 char buf[]="!!!!!!";
235 test.GetPath(buf, 3);
236
-> 237 if (core_file)
238 {
239 if (!core_file.Exists())
240 {
(lldb) print buf
(char [7]) $0 = "/p"
```
Reviewers: zturner, abidh, clayborg
Reviewed By: abidh, clayborg
Subscribers: tberghammer, vharron, lldb-commits, clayborg, zturner, abidh
Differential Revision: http://reviews.llvm.org/D7553
llvm-svn: 230787
Diffstat (limited to 'lldb/source/Host/common/SocketAddress.cpp')
| -rw-r--r-- | lldb/source/Host/common/SocketAddress.cpp | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/lldb/source/Host/common/SocketAddress.cpp b/lldb/source/Host/common/SocketAddress.cpp index b6a7a08bb3a..3ab6cfeec4a 100644 --- a/lldb/source/Host/common/SocketAddress.cpp +++ b/lldb/source/Host/common/SocketAddress.cpp @@ -48,8 +48,7 @@ const char* inet_ntop(int af, const void * src, const char* formatted = inet_ntoa(*static_cast<const in_addr*>(src)); if (formatted && strlen(formatted) < size) { - strncpy(dst, formatted, size); - return dst; + return ::strcpy(dst, formatted); } } return nullptr; @@ -64,8 +63,7 @@ const char* inet_ntop(int af, const void * src, ); if (full_size < static_cast<int>(size)) { - strncpy(dst,tmp,size); - return dst; + return ::strcpy(dst, tmp); } return nullptr; } |

