~ubuntu-branches/ubuntu/raring/sudo/raring

« back to all changes in this revision

Viewing changes to zlib/inftrees.c

  • Committer: Package Import Robot
  • Author(s): Tyler Hicks
  • Date: 2012-07-16 14:01:42 UTC
  • mfrom: (1.3.22 sid)
  • Revision ID: package-import@ubuntu.com-20120716140142-b0tgau0k6nid4mrf
Tags: 1.8.5p2-1ubuntu1
* Merge from debian/testing (LP: #1024154), remaining changes:
  - debian/patches/keep_home_by_default.patch:
    + Set HOME in initial_keepenv_table.
  - debian/rules:
    + compile with --without-lecture --with-tty-tickets (Ubuntu specific)
    + install man/man8/sudo_root.8 in both flavours (Ubuntu specific)
    + install apport hooks
    + The ubuntu-sudo-as-admin-successful.patch was taken upstream by
      Debian however it requires a --enable-admin-flag configure flag to
      actually enable it in both flavours.
  - debian/control:
    + Mark Debian Vcs-* as XS-Debian-Vcs-*
    + update debian/control
  - debian/sudoers:
    + grant admin group sudo access
  - debian/source_sudo.py, debian/sudo-ldap.dirs, debian/sudo.dirs:
    + add usr/share/apport/package-hooks
  - debian/sudo.pam:
    + Use pam_env to read /etc/environment and /etc/default/locale
      environment files. Reading ~/.pam_environment is not permitted due to
      security reasons.
* Dropped changes:
  - debian/patches/lp927828-fix-abort-in-pam-modules-when-timestamp-valid.patch
    + Fixed upstream in 1.8.5
  - debian/patches/CVE-2012-2337.patch:
    + Fixed upstream in 1.8.4p5
  - debian/patches/pam_env_merge.patch:
    + Feature released upstream in 1.8.5
  - debian/{sudo,sudo-ldap}.{preinst,postinst,postrm}:
    + Drop Ubuntu-specific sudoers file migration code because the only
      upgrade path to quantal is from precise. All necessary sudoers file
      migration will have already been done by the time this version of the
      sudo package is installed.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
/* inftrees.c -- generate Huffman trees for efficient decoding
2
 
 * Copyright (C) 1995-2010 Mark Adler
 
2
 * Copyright (C) 1995-2012 Mark Adler
3
3
 * For conditions of distribution and use, see copyright notice in zlib.h
4
4
 */
5
5
 
9
9
#define MAXBITS 15
10
10
 
11
11
const char inflate_copyright[] =
12
 
   " inflate 1.2.5 Copyright 1995-2010 Mark Adler ";
 
12
   " inflate 1.2.6 Copyright 1995-2012 Mark Adler ";
13
13
/*
14
14
  If you use the zlib library in a product, an acknowledgment is welcome
15
15
  in the documentation of your product. If for some reason you cannot
62
62
        35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0};
63
63
    static const unsigned short lext[31] = { /* Length codes 257..285 extra */
64
64
        16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 18, 18, 18, 18,
65
 
        19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 16, 73, 195};
 
65
        19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 16, 203, 69};
66
66
    static const unsigned short dbase[32] = { /* Distance codes 0..29 base */
67
67
        1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193,
68
68
        257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145,
289
289
        }
290
290
    }
291
291
 
292
 
    /*
293
 
       Fill in rest of table for incomplete codes.  This loop is similar to the
294
 
       loop above in incrementing huff for table indices.  It is assumed that
295
 
       len is equal to curr + drop, so there is no loop needed to increment
296
 
       through high index bits.  When the current sub-table is filled, the loop
297
 
       drops back to the root table to fill in any remaining entries there.
298
 
     */
299
 
    here.op = (unsigned char)64;                /* invalid code marker */
300
 
    here.bits = (unsigned char)(len - drop);
301
 
    here.val = (unsigned short)0;
302
 
    while (huff != 0) {
303
 
        /* when done with sub-table, drop back to root table */
304
 
        if (drop != 0 && (huff & mask) != low) {
305
 
            drop = 0;
306
 
            len = root;
307
 
            next = *table;
308
 
            here.bits = (unsigned char)len;
309
 
        }
310
 
 
311
 
        /* put invalid code marker in table */
312
 
        next[huff >> drop] = here;
313
 
 
314
 
        /* backwards increment the len-bit code huff */
315
 
        incr = 1U << (len - 1);
316
 
        while (huff & incr)
317
 
            incr >>= 1;
318
 
        if (incr != 0) {
319
 
            huff &= incr - 1;
320
 
            huff += incr;
321
 
        }
322
 
        else
323
 
            huff = 0;
 
292
    /* fill in remaining table entry if code is incomplete (guaranteed to have
 
293
       at most one remaining entry, since if the code is incomplete, the
 
294
       maximum code length that was allowed to get this far is one bit) */
 
295
    if (huff != 0) {
 
296
        here.op = (unsigned char)64;            /* invalid code marker */
 
297
        here.bits = (unsigned char)(len - drop);
 
298
        here.val = (unsigned short)0;
 
299
        next[huff] = here;
324
300
    }
325
301
 
326
302
    /* set return parameters */