Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
View | Details | Raw Unified | Return to bug 636400 | Differences between
and this patch

Collapse All | Expand All

(-)a/Python/pyhash.c (-6 / +8 lines)
Lines 369-375 Link Here
369
    uint64_t k0 = _le64toh(_Py_HashSecret.siphash.k0);
369
    uint64_t k0 = _le64toh(_Py_HashSecret.siphash.k0);
370
    uint64_t k1 = _le64toh(_Py_HashSecret.siphash.k1);
370
    uint64_t k1 = _le64toh(_Py_HashSecret.siphash.k1);
371
    uint64_t b = (uint64_t)src_sz << 56;
371
    uint64_t b = (uint64_t)src_sz << 56;
372
    const uint64_t *in = (uint64_t*)src;
372
    const uint8_t *in = (uint8_t*)src;
373
373
374
    uint64_t v0 = k0 ^ 0x736f6d6570736575ULL;
374
    uint64_t v0 = k0 ^ 0x736f6d6570736575ULL;
375
    uint64_t v1 = k1 ^ 0x646f72616e646f6dULL;
375
    uint64_t v1 = k1 ^ 0x646f72616e646f6dULL;
Lines 378-388 Link Here
378
378
379
    uint64_t t;
379
    uint64_t t;
380
    uint8_t *pt;
380
    uint8_t *pt;
381
    uint8_t *m;
381
    const uint8_t *m;
382
382
383
    while (src_sz >= 8) {
383
    while (src_sz >= 8) {
384
        uint64_t mi = _le64toh(*in);
384
        uint64_t mi;
385
        in += 1;
385
        memcpy(&mi, in, sizeof(mi));
386
        src_sz -= 8;
386
        mi = _le64toh(mi);
387
        in += sizeof(mi);
388
        src_sz -= sizeof(mi);
387
        v3 ^= mi;
389
        v3 ^= mi;
388
        DOUBLE_ROUND(v0,v1,v2,v3);
390
        DOUBLE_ROUND(v0,v1,v2,v3);
Lines 391-397 Link Here
391
393
392
    t = 0;
394
    t = 0;
393
    pt = (uint8_t *)&t;
395
    pt = (uint8_t *)&t;
394
    m = (uint8_t *)in;
396
    m = in;
395
    switch (src_sz) {
397
    switch (src_sz) {
396
        case 7: pt[6] = m[6]; /* fall through */
398
        case 7: pt[6] = m[6]; /* fall through */
397
        case 6: pt[5] = m[5]; /* fall through */
399
        case 6: pt[5] = m[5]; /* fall through */

Return to bug 636400