Skip to content

Commit d63caf0

Browse files
committed
ext/standard/info.c: Minor refactoring to php_get_uname()
1 parent ac7ed28 commit d63caf0

File tree

1 file changed

+13
-21
lines changed

1 file changed

+13
-21
lines changed

ext/standard/info.c

+13-21
Original file line numberDiff line numberDiff line change
@@ -660,8 +660,8 @@ static void php_get_windows_cpu(char *buf, size_t bufsize)
660660
PHPAPI zend_string *php_get_uname(char mode)
661661
{
662662
char *php_uname;
663-
char tmp_uname[256];
664663
#ifdef PHP_WIN32
664+
char tmp_uname[256];
665665
DWORD dwBuild=0;
666666
DWORD dwVersion = GetVersion();
667667
DWORD dwWindowsMajorVersion = (DWORD)(LOBYTE(LOWORD(dwVersion)));
@@ -674,21 +674,18 @@ PHPAPI zend_string *php_get_uname(char mode)
674674
if (mode == 's') {
675675
php_uname = "Windows NT";
676676
} else if (mode == 'r') {
677-
snprintf(tmp_uname, sizeof(tmp_uname), "%d.%d", dwWindowsMajorVersion, dwWindowsMinorVersion);
678-
php_uname = tmp_uname;
677+
return strpprintf(0, "%d.%d", dwWindowsMajorVersion, dwWindowsMinorVersion);
679678
} else if (mode == 'n') {
680679
php_uname = ComputerName;
681680
} else if (mode == 'v') {
682681
char *winver = php_get_windows_name();
683682
dwBuild = (DWORD)(HIWORD(dwVersion));
684-
if(winver == NULL) {
685-
snprintf(tmp_uname, sizeof(tmp_uname), "build %d", dwBuild);
683+
if (winver == NULL) {
684+
return strpprintf(0, "build %d", dwBuild);
686685
} else {
687-
snprintf(tmp_uname, sizeof(tmp_uname), "build %d (%s)", dwBuild, winver);
688-
}
689-
php_uname = tmp_uname;
690-
if(winver) {
686+
zend_string *build_with_version = strpprintf(0, "build %d (%s)", dwBuild, winver);
691687
efree(winver);
688+
return build_with_version;
692689
}
693690
} else if (mode == 'm') {
694691
php_get_windows_cpu(tmp_uname, sizeof(tmp_uname));
@@ -704,18 +701,16 @@ PHPAPI zend_string *php_get_uname(char mode)
704701

705702
/* Windows "version" 6.2 could be Windows 8/Windows Server 2012, but also Windows 8.1/Windows Server 2012 R2 */
706703
if (dwWindowsMajorVersion == 6 && dwWindowsMinorVersion == 2) {
707-
if (strncmp(winver, "Windows 8.1", 11) == 0 || strncmp(winver, "Windows Server 2012 R2", 22) == 0) {
704+
if (strncmp(winver, "Windows 8.1", strlen("Windows 8.1")) == 0 || strncmp(winver, "Windows Server 2012 R2", strlen("Windows Server 2012 R2")) == 0) {
708705
dwWindowsMinorVersion = 3;
709706
}
710707
}
711708

712-
snprintf(tmp_uname, sizeof(tmp_uname), "%s %s %d.%d build %d (%s) %s",
713-
"Windows NT", ComputerName,
714-
dwWindowsMajorVersion, dwWindowsMinorVersion, dwBuild, winver?winver:"unknown", wincpu);
715-
if(winver) {
716-
efree(winver);
717-
}
718-
php_uname = tmp_uname;
709+
zend_string *build_with_all_info = strpprintf(0, "%s %s %d.%d build %d (%s) %s",
710+
"Windows NT", ComputerName, dwWindowsMajorVersion, dwWindowsMinorVersion, dwBuild,
711+
winver ? winver: "unknown", wincpu);
712+
efree(winver);
713+
return build_with_all_info;
719714
}
720715
#else
721716
#ifdef HAVE_SYS_UTSNAME_H
@@ -734,10 +729,7 @@ PHPAPI zend_string *php_get_uname(char mode)
734729
} else if (mode == 'm') {
735730
php_uname = buf.machine;
736731
} else { /* assume mode == 'a' */
737-
snprintf(tmp_uname, sizeof(tmp_uname), "%s %s %s %s %s",
738-
buf.sysname, buf.nodename, buf.release, buf.version,
739-
buf.machine);
740-
php_uname = tmp_uname;
732+
return strpprintf(0, "%s %s %s %s %s", buf.sysname, buf.nodename, buf.release, buf.version, buf.machine);
741733
}
742734
}
743735
#else

0 commit comments

Comments
 (0)