mirror of
https://github.com/zebrajr/node.git
synced 2025-12-07 00:20:38 +01:00
os: fix unlikely buffer overflow in os.type()
* Fix a buffer overflow that happens iff strlen(info.sysname) > 255. * Check the return value of uname().
This commit is contained in:
parent
8ee43006b8
commit
78c5de598b
|
|
@ -69,14 +69,11 @@ static Handle<Value> GetOSType(const Arguments& args) {
|
|||
HandleScope scope;
|
||||
|
||||
#ifdef __POSIX__
|
||||
char type[256];
|
||||
struct utsname info;
|
||||
|
||||
uname(&info);
|
||||
strncpy(type, info.sysname, strlen(info.sysname));
|
||||
type[strlen(info.sysname)] = 0;
|
||||
|
||||
return scope.Close(String::New(type));
|
||||
if (uname(&info)) {
|
||||
return ThrowException(ErrnoException(errno, "uname"));
|
||||
}
|
||||
return scope.Close(String::New(info.sysname));
|
||||
#else // __MINGW32__
|
||||
return scope.Close(String::New("Windows_NT"));
|
||||
#endif
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user