IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

[C] Malloc, memory Corruption


Sujet :

C

  1. #1
    Membre confirmé

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Août 2007
    Messages
    509
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Août 2007
    Messages : 509
    Points : 622
    Points
    622
    Par défaut [C] Malloc, memory Corruption
    Bonjour, je fais un simple malloc et j'ai tout ça comme erreur :
    *** glibc detected *** /home/lindows/public_html/cgi-bin/relais_lignes.cgi: malloc(): memory corruption: 0x08187d08 ***
    ======= Backtrace: =========
    /lib/tls/i686/cmov/libc.so.6[0xb7d1e176]
    /lib/tls/i686/cmov/libc.so.6(__libc_calloc+0xef)[0xb7d1f5ef]
    /usr/lib/libX11.so.6[0xb7e2db3b]
    /usr/lib/libX11.so.6(XInternAtom+0x56)[0xb7e2e0e6]
    /home/lindows/public_html/cgi-bin/relais_lignes.cgi[0x804895d]
    /lib/tls/i686/cmov/libc.so.6(__libc_start_main+0xe5)[0xb7cc2685]
    /home/lindows/public_html/cgi-bin/relais_lignes.cgi[0x80487a1]


    .................
    Le bout de code qui cause probl :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
     
    int main(int argc, char *argv[]){
      char *var, *ip, *fq;
      Window win, w;
      Atom qs;
      int cpt;
     
      if (! (dpy = XOpenDisplay(":0.0"))) {
        fprintf(stderr, "%s: dispositif %s injoignable\n", argv[0],
                  XDisplayName(":0.0"));
        exit(-1);
      }
     
     
      win = XCreateSimpleWindow(dpy, DefaultRootWindow(dpy), 
    			    0,0,15,15,0, 
    			    BlackPixel(dpy, DefaultScreen(dpy)),
    			    WhitePixel(dpy, DefaultScreen(dpy)) );
     
     
      var = getenv("QUERY_STRING");
      ip =  getenv("REMOTE_ADDR");
     
      cpt = (int)(strlen(ip) + strlen(var) + 12);
      // -------> ici ca bloque fq = malloc(sizeof(char)* cpt);
      strcat(fq,var);
      strcat(fq,"&addresseIP=");
      strcat(fq,ip);
      qs = XInternAtom(dpy, "xhextris_query_string",True);
      w = XGetSelectionOwner(dpy,qs);
     
      fprintf(stdout,"Content-Type: text/html\n\n");  
      fprintf(stdout, "<html><head></head><body>");  
      fprintf(stdout,"<p>QUERY_STRING : %s</p>",fq);
      fprintf(stdout,"</body></html>\n");  
     
      XChangeProperty(dpy,w,
    		  qs,
    		  XA_STRING,
    		  8,
    		  PropModeReplace,
                      (unsigned char *) var,
                      strlen(var)+1);
      XFlush(dpy);
     
      return 0;
    }
    Quelqu'un peut - il m'aider?

  2. #2
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 826
    Points : 218 287
    Points
    218 287
    Billets dans le blog
    117
    Par défaut
    Bonjour,

    En premier conseille, initialise les variables que tu déclare.
    ( Les types 'normaux' = 0 , les pointeurs = NULL , comme cela il n'y a pas d'ambiguité , et c'est plus facile pour chercher des erreurs ( pendant l'execution ).

    Il semble que tu utilise une bibliothèque externe que je ne connais pas personnelement donc, je ne peux pas t'aider. Mais c'est surement car tu passe un pointeur non initialisé correctement
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  3. #3
    Membre confirmé

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Août 2007
    Messages
    509
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Août 2007
    Messages : 509
    Points : 622
    Points
    622
    Par défaut
    Citation Envoyé par LittleWhite Voir le message
    Bonjour,

    En premier conseille, initialise les variables que tu déclare.
    ( Les types 'normaux' = 0 , les pointeurs = NULL , comme cela il n'y a pas d'ambiguité , et c'est plus facile pour chercher des erreurs ( pendant l'execution ).

    Il semble que tu utilise une bibliothèque externe que je ne connais pas personnelement donc, je ne peux pas t'aider. Mais c'est surement car tu passe un pointeur non initialisé correctement
    Bah t'avais raison sur ton premier post. je l'ai corrigé. Comme tu l'as dit ma variable fq n'était pas initialisé et je faisais un strcat dessus. Ca marchait pas. j'ai fait d'abord une première copie et ensuite je rajoute les 2 autres chaines en faisant strcat. C'est bon maintenant. Merci pour ton aide !!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. JMS génère memory corruption
    Par lapin_hobbit dans le forum Général Java
    Réponses: 0
    Dernier message: 20/12/2011, 16h47
  2. JNI malloc(): memory corruption
    Par manpe dans le forum Entrée/Sortie
    Réponses: 1
    Dernier message: 07/12/2009, 13h16
  3. memory corruption error
    Par CHATon dans le forum Débuter
    Réponses: 23
    Dernier message: 21/07/2009, 14h15
  4. Réponses: 0
    Dernier message: 18/09/2007, 20h07
  5. memory corruption
    Par GLSpirit dans le forum C++
    Réponses: 2
    Dernier message: 23/05/2007, 09h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo