To parse a string, sscanf() is used. However, with wrong format:

libvirt-php.c: In function ‘get_next_free_numeric_value’:
libvirt-php.c:2719:6: warning: format ‘%x’ expects argument of type ‘unsigned 
int *’, but argument 3 has type ‘long int *’ [-Wformat=]
      sscanf(Z_STRVAL_PP(data), "%x", &num);
      ^

Signed-off-by: Michal Privoznik <mpriv...@redhat.com>
---
 src/libvirt-php.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/libvirt-php.c b/src/libvirt-php.c
index 0adc4be..c35fa5b 100644
--- a/src/libvirt-php.c
+++ b/src/libvirt-php.c
@@ -2777,7 +2777,7 @@ long get_next_free_numeric_value(virDomainPtr domain, 
char *xpath)
                                if (zend_hash_get_current_key_ex(arr_hash, 
&key, &key_len, &index, 0, &pointer) != HASH_KEY_IS_STRING) {
                                        long num = -1;
 
-                                       sscanf(Z_STRVAL_PP(data), "%x", &num);
+                                       sscanf(Z_STRVAL_PP(data), "%lx", &num);
                                        if (num > max_slot)
                                                max_slot = num;
                                }
-- 
2.3.6

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list

Reply via email to