[libvirt] [libvirt-php] Fixed set_error when argument is NULL

Lyre liyong at skybility.com
Sat Apr 2 03:20:30 UTC 2011


Avoid freeing a NULL pointer
---
 src/libvirt-php.c |    8 ++++++--
 1 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/src/libvirt-php.c b/src/libvirt-php.c
index 6a76f45..66b1de9 100644
--- a/src/libvirt-php.c
+++ b/src/libvirt-php.c
@@ -237,12 +237,16 @@ PHP_MINFO_FUNCTION(libvirt)
 */
 void set_error(char *msg TSRMLS_DC)
 {
-	if (msg == NULL) {
+	if (LIBVIRT_G (last_error) != NULL)
+	{
 		efree(LIBVIRT_G (last_error));
+	}
+
+	if (msg == NULL) {
+		LIBVIRT_G (last_error) = NULL;
 		return;
 	}
 	php_error_docref(NULL TSRMLS_CC, E_WARNING,"%s",msg);
-	if (LIBVIRT_G (last_error)!=NULL) efree(LIBVIRT_G (last_error));
 	LIBVIRT_G (last_error)=estrndup(msg,strlen(msg));
 }
 
-- 
1.7.3.4
×




More information about the libvir-list mailing list