php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Return to Bug #60124
Patch appname_mssql_php revision 2011-10-24 17:20 UTC by bsdports at wayfair dot com

Patch appname_mssql_php for MSSQL related Bug #60124

Patch version 2011-10-24 17:20 UTC

Return to Bug #60124 | Download this patch
Patch Revisions:

Developer: bsdports@wayfair.com

--- php_mssql.c.orig	2011-07-28 07:01:04.000000000 -0400
+++ php_mssql.c	2011-10-21 10:57:41.000000000 -0400
@@ -53,6 +53,7 @@
 	ZEND_ARG_INFO(0, username)
 	ZEND_ARG_INFO(0, password)
 	ZEND_ARG_INFO(0, newlink)
+	ZEND_ARG_INFO(0, appname)
 ZEND_END_ARG_INFO()
 
 ZEND_BEGIN_ARG_INFO_EX(arginfo_mssql_close, 0, 0, 0)
@@ -538,15 +539,15 @@
 */
 static void php_mssql_do_connect(INTERNAL_FUNCTION_PARAMETERS, int persistent)
 {
-	char *host = NULL, *user = NULL, *passwd = NULL;
-	int host_len = 0, user_len = 0, passwd_len = 0;
+	char *host = NULL, *user = NULL, *passwd = NULL, *appname = NULL;
+	int host_len = 0, user_len = 0, passwd_len = 0, appname_len = 0;
 	zend_bool new_link = 0;
 	char *hashed_details;
 	int hashed_details_length;
 	mssql_link mssql, *mssql_ptr;
 	char buffer[40];
 
-	if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|sssb", &host, &host_len, &user, &user_len, &passwd, &passwd_len, &new_link) == FAILURE) {
+	if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|sssbs", &host, &host_len, &user, &user_len, &passwd, &passwd_len, &new_link, &appname, &appname_len) == FAILURE) {
 		return;
 	}
 
@@ -560,6 +561,9 @@
 	if(passwd_len>255) {
 		passwd[255] = '\0';
 	}
+	if(appname_len>255) {
+		appname[255] = '\0';
+	}
 
 	switch(ZEND_NUM_ARGS())
 	{
@@ -577,6 +581,7 @@
 			break;
 		case 3:
 		case 4:
+		case 5:
 			hashed_details_length = spprintf(&hashed_details, 0, "mssql_%s_%s_%s", host, user, passwd);
 			break;
 	}
@@ -620,7 +625,15 @@
 		}
 #endif
 
+	if (appname) {
+		if (MS_SQL_G(appname)) {
+			STR_FREE(MS_SQL_G(appname));
+		}
+		MS_SQL_G(appname) = estrndup(appname, appname_len);
+	}
+
 	DBSETLAPP(mssql.login,MS_SQL_G(appname));
+
 	mssql.valid = 1;
 
 #ifndef HAVE_FREETDS
 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Thu Apr 18 04:01:27 2024 UTC