Ticket #21674: patch-base64-typecast.diff

File patch-base64-typecast.diff, 2.4 KB (added by nickhilliard (Nick Hilliard), 15 years ago)
  • src/lib/base64.c

    diff -ur src/lib/base64.c.orig src/lib/base64.c
    old new  
    7474 * stored (not including the EOS).
    7575 */
    7676int
    77 to_base64(intmax_t value, char *where)
     77to_base64(int64_t value, char *where)
    7878{
    79    uintmax_t val;
     79   uint64_t val;
    8080   int i = 0;
    8181   int n;
    8282
     
    9898   val = value;
    9999   where[i] = 0;
    100100   do {
    101       where[--i] = base64_digits[val & (uintmax_t)0x3F];
     101      where[--i] = base64_digits[val & (uint64_t)0x3F];
    102102      val >>= 6;
    103103   } while (val);
    104104   return n;
     
    112112 * Returns the value.
    113113 */
    114114int
    115 from_base64(intmax_t *value, char *where)
     115from_base64(int64_t *value, char *where)
    116116{
    117    uintmax_t val = 0;
     117   uint64_t val = 0;
    118118   int i, neg;
    119119
    120120   if (!base64_inited)
     
    131131      val += base64_map[(uint8_t)where[i++]];
    132132   }
    133133
    134    *value = neg ? -(intmax_t)val : (intmax_t)val;
     134   *value = neg ? -(int64_t)val : (int64_t)val;
    135135   return i;
    136136}
    137137
  • src/lib/protos.h

    diff -ur src/lib/protos.h.orig src/lib/protos.h
    old new  
    4545
    4646/* base64.c */
    4747void      base64_init            (void);
    48 int       to_base64              (intmax_t value, char *where);
    49 int       from_base64            (intmax_t *value, char *where);
     48int       to_base64              (int64_t value, char *where);
     49int       from_base64            (int64_t *value, char *where);
    5050int       bin_to_base64          (char *buf, int buflen, char *bin, int binlen,
    5151                                  int compatible);
    5252
  • src/filed/restore.c

    diff -ur src/filed/restore.c.orig src/filed/restore.c
    old new  
    159159   char ec1[50];                       /* Buffer printing huge values */
    160160   uint32_t buf_size;                  /* client buffer size */
    161161   int stat;
    162    intmax_t rsrc_len = 0;             /* Original length of resource fork */
     162   int64_t rsrc_len = 0;             /* Original length of resource fork */
    163163   r_ctx rctx;
    164164   ATTR *attr;
    165165   /* ***FIXME*** make configurable */
     
    550550                  continue;
    551551               }
    552552
    553                rctx.fork_size = rsrc_len;
     553               rctx.fork_size = (intmax_t)rsrc_len;
    554554               Dmsg0(130, "Restoring resource fork\n");
    555555            }
    556556