J'ai installé C libxml2 version 2.9.4 library sur mon Mac (Darwin <hostname> 16.7.0 Darwin Kernel Version 16.7.0: Thu Jun 15 17:36:27 PDT 2017; root:xnu-3789.70.16~2/RELEASE_X86_64 x86_64
) en utilisant le trio de commandes standard ./configure ; make ; make install
. En essayant d'exécuter la commande testXPath
avec l'option -tree
sur un XPATH sans préfixe, j'obtiens une erreur de segmentation.Le préfixe d'omission dans XPATH (libxml2) conduit à un défaut de segmentation
~/home/libxml2-2.7.2 $ ./testXPath -tree "/abcde"
In testXPath function...
Compiled Expression : 0 elements
END
END
END
END
END
END
END
END
END
END
END
END
END
END
END
END
END
END
END
END
END
END
END
END
END
END
END
END
END
END
END
...etc until:
Segmentation fault: 11
Je creusèrent un peu dans le code testXPath.c
et la compilation du XPATH semble être défectueux.
comp = xmlXPathCompile(BAD_CAST str);
Le xmlXPathCompExprPtr
retourné a son membre last
établi pour être -1
si je ne fournit pas de préfixe. Cela provoque l'appel à xmlXPathDebugDumpCompExpr()
à pépins. Le fait d'avoir un préfixe dans le chemin xpath ne provoque pas l'erreur
Est-ce que je fais quelque chose de mal?
Je ne sais pas pourquoi cela se downvoted. – ShivanKaul
Malheureusement, SO vous permet de downvote sans donner de raison. Parfois, cela signifie simplement que quelqu'un passe une mauvaise journée. –