Changeset 641 in openpam


Ignore:
Timestamp:
Mar 5, 2013, 9:53:33 AM (8 years ago)
Author:
Dag-Erling Smørgrav
Message:

Fix encoder bugs: increment *olen rather than olen, and use the correct
mask for base64 (which was copy-pasted from the base32 code)

Location:
trunk/modules/pam_oath
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/modules/pam_oath/oath_base32.c

    r626 r641  
    7373                out[6] = b32[bits >> 5 & 0x1f];
    7474                out[7] = b32[bits & 0x1f];
    75                 olen += 8;
     75                *olen += 8;
    7676                out += 8;
    7777        }
     
    9696                out[6] = ilen > 3 ? b32[bits >> 5 & 0x1f] : '=';
    9797                out[7] = '=';
    98                 olen += 8;
     98                *olen += 8;
    9999                out += 8;
    100100        }
    101101        out[0] = '\0';
     102        ++*olen;
    102103        return (0);
    103104}
  • trunk/modules/pam_oath/oath_base64.c

    r626 r641  
    6969                out[2] = b64[bits >> 6 & 0x3f];
    7070                out[3] = b64[bits & 0x3f];
    71                 olen += 4;
     71                *olen += 4;
    7272                out += 4;
    7373        }
     
    8080                        bits |= (uint32_t)in[0] << 16;
    8181                }
    82                 out[0] = b64[bits >> 18 & 0x1f];
    83                 out[1] = b64[bits >> 12 & 0x1f];
    84                 out[2] = ilen > 1 ? b64[bits >> 6 & 0x1f] : '=';
     82                out[0] = b64[bits >> 18 & 0x3f];
     83                out[1] = b64[bits >> 12 & 0x3f];
     84                out[2] = ilen > 1 ? b64[bits >> 6 & 0x3f] : '=';
    8585                out[3] = '=';
    86                 olen += 4;
     86                *olen += 4;
    8787                out += 4;
    8888        }
    8989        out[0] = '\0';
     90        ++*olen;
    9091        return (0);
    9192}
Note: See TracChangeset for help on using the changeset viewer.