• [^] # Re: Le cas goto

    Posté par (site web personnel) . En réponse au journal Apple, le SSL les goto et les accolades. Évalué à -1. Dernière modification le 24 février 2014 à 21:29.

    C'est moi qui ne comprend pas bien ? Ou ton code

    static OSStatus SSLVerifySignedServerKeyExchange(/* ... */) {
     std::vector<...> signedHashes = ...;
     std::unique_ptr<...> hashCtx = ...;
     OSStatus err;
     if ((err = SSLHashSHA1.update(&hashCtx, &serverRandom)) != 0) 
     return err;
     if ((err = SSLHashSHA1.update(&hashCtx, &signedParams)) != 0)
     return err;
     if ((err = SSLHashSHA1.final(&hashCtx, &hashOut)) != 0)
     return err;
     return OSStatus::Success:
     // no cleaning necessary
    }

    fait un beau leak memory ?
    Il me semble qu'il manque les

    SSLFreeBuffer(&signedHashes);
    SSLFreeBuffer(&hashCtx);

    En cas d'erreur justement.
    Car c'est bien là la seule utilité du goto dans le code initial ou du catch zarbi de rewind c'est vider la mémoire allouée si quelque chose ne ce passe pas bien.

    kentoc'h mervel eget bezan saotred