|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité régulier
![]() Inscription : juillet 2009 Messages : 41 ![]() |
Bonsoir,
En phase de tests sur mes devs, je suis tombé sur un hang lorsqu'un OCI_ConnectionFree est réalisé avant OCI_StatementFree (Le statement étant lié à la connection). Je tiens à préciser que je pense que le fait de fermer la connection avant de libérer le statement est bien entendu hors de toute logique mais... Fly. Ce test a été réalisé sur la version 3.4.0. Code :
|
||
|
|
00
|
|
|
#2 |
![]() ![]() vincent rogier Inscription : juillet 2007 Messages : 2 355 ![]() |
Quand OCI_ConnectionFree() est appelé, tous les objets OCI_Statement crées pour la connexion en question sont libérés..
OCI_StatementFree(), dans ce cas va vouloir accéder à un pointeur invalide... C'est comme faire deux appels d'affilé à free()... comportement indéterminé ! Ou est ton problème ?
__________________
Vincent Rogier. Rubrique ORACLE : Accueil - Forum - Tutoriels - FAQ - Livres - Blog Vous voulez contribuer à la rubrique Oracle ? Contactez la rubrique ! OCILIB (C Driver for Oracle) Librairie C Open Source multi-plateformes pour accéder et manipuler des bases de données Oracle |
|
00
|
|
|
#3 |
|
Invité régulier
![]() Inscription : juillet 2009 Messages : 41 ![]() |
Bonjour,
Il ne s'agit pas vraiment d'un problème Le souci est que je ne vais pas forcément être derrière leurs épaules pour vérifier qu'ils codent comme il le faut. Je pensais que la fonction OCI_StatementFree allait renvoyer une erreur du type 'invalide handle' ou autre. Fly. |
|
|
00
|
|
|
#4 | |
![]() ![]() vincent rogier Inscription : juillet 2007 Messages : 2 355 ![]() |
Citation:
Mais si la valeur n'est pas nulle, comment faire ? Tester la validité d'un pointeur qui pointe sur une zonée mémoire déja libérée, de maniére portable et sans overhead, est quasi impossible...
__________________
Vincent Rogier. Rubrique ORACLE : Accueil - Forum - Tutoriels - FAQ - Livres - Blog Vous voulez contribuer à la rubrique Oracle ? Contactez la rubrique ! OCILIB (C Driver for Oracle) Librairie C Open Source multi-plateformes pour accéder et manipuler des bases de données Oracle |
|
|
00
|
|
|
#5 |
|
Invité régulier
![]() Inscription : juillet 2009 Messages : 41 ![]() |
Bonjour,
Bien compris, il me reste à ajouter un petit booléen de ma liste de statement ![]() Merci. Fly |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com