tsp-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Tsp-devel] Malloc et free problèmes


From: Arquer Stephane
Subject: [Tsp-devel] Malloc et free problèmes
Date: Mon, 12 Nov 2007 17:56:36 +0100

Salut,

J'ai rencontré le problème suivant:
la fonction  bb_utils_build_sem_name(bb->name) ds posix_bb_sem_get, retourne 
une adresse = 0x8 qui n'est pas valide, le free (de rtems) se plante donc car 
il ne retrouve pas le bon segment.

// code de bb_core_posix.c (posix rtems !)
static int posix_bb_sem_get(S_BB_T *bb, int create)
{
        int32_t retcode;
        char* name_sem = NULL;
        int oflag = 0;
        if (create)
                oflag = O_CREAT | O_EXCL;       
        name_sem = bb_utils_build_sem_name(bb->name);
        bb->priv.posix.sem_id = (sem_t *)sem_open(name_sem, oflag | 
BB_SEM_ACCESS_RIGHT);       
        if ( bb->priv.posix.sem_id < 0) {
                LOG(BB_LOG_SEVERE, "BlackBoard::bb_create",
                    "Cannot create semaphore < %s >", name_sem);
                goto err;
        }
        free(name_sem); 
        return BB_OK;
      err:
        free(name_sem);
        return BB_NOK;
}

Pour éviter cela, j'ai modifié l'appel de sem_open :
bb->priv.posix.sem_id = (sem_t *)sem_open(bb_utils_build_sem_name(bb->name),
                                                oflag | BB_SEM_ACCESS_RIGHT);

Auriez-vous une idée de la provenance de ce type de problème ? (contexte de 
fonction ??)

Merci d'avance.

sa




reply via email to

[Prev in Thread] Current Thread [Next in Thread]