The result is an empty string due to an underlying failure. Using only 'uname' as the argument returns "Linux".
It appears that the source of the problem is in jlib/jutil.cpp within the callExternalProgram() function. The execle()/execlp() calls pass the entire program name ("uname -a") to the system calls rather than parsing things out. execvpe()/execvp() may be better choices, with the arguments parsed out and passed as an array of C-style strings.
I could be very wrong about the source of the problem, but the bug does exist.