]> arthur.barton.de Git - netatalk.git/commitdiff
compute the right size if len == -1 in convert_string and use -1 than strlen(in)...
authordidg <didg>
Thu, 29 Oct 2009 11:35:57 +0000 (11:35 +0000)
committerdidg <didg>
Thu, 29 Oct 2009 11:35:57 +0000 (11:35 +0000)
13 files changed:
bin/nbp/nbplkup.c
bin/nbp/nbprgstr.c
bin/nbp/nbpunrgstr.c
etc/afpd/afp_config.c
etc/afpd/catsearch.c
etc/afpd/directory.c
etc/afpd/status.c
etc/afpd/uam.c
etc/atalkd/config.c
etc/papd/lp.c
etc/papd/main.c
etc/papd/print_cups.c
libatalk/unicode/charcnv.c

index 5f1e600340a4d3d09ecbd7a775b83e0d7cf6b78a..a43ac41c06d850174b22ad88c9cca9737b4332bf 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * $Id: nbplkup.c,v 1.8 2009-10-14 02:24:05 didg Exp $
+ * $Id: nbplkup.c,v 1.9 2009-10-29 11:35:57 didg Exp $
  *
  * Copyright (c) 1990,1991 Regents of The University of Michigan.
  * All Rights Reserved.
@@ -148,7 +148,7 @@ int main(int ac, char **av)
 
     if ( ac - optind == 1 ) {
        if ((size_t)(-1) == convert_string_allocate( CH_UNIX, chMac,
-                           av[ optind ], strlen(av[optind]), &convname))
+                           av[ optind ], -1, &convname))
             convname = av[ optind ];
 
        if ( nbp_name( convname, &Obj, &Type, &Zone )) {
index 4bcf429839a189756a60bf30b271a60e8b21a18e..bef33a1c01b54cd57513691a85aab848999655ba 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * $Id: nbprgstr.c,v 1.8 2009-10-14 02:24:05 didg Exp $
+ * $Id: nbprgstr.c,v 1.9 2009-10-29 11:35:58 didg Exp $
  *
  * Copyright (c) 1990,1993 Regents of The University of Michigan.
  * All Rights Reserved.  See COPYRIGHT.
@@ -80,7 +80,7 @@ int main(int ac, char **av)
 
     /* Convert the name */
     if ((size_t)(-1) == convert_string_allocate(CH_UNIX, chMac,
-                        av[optind], strlen(av[optind]), &convname))
+                        av[optind], -1, &convname))
         convname = av[optind];
 
     /*
index b3820466719e3c00085c700436efac6cb4a71017..a4a946530f21e7fe9de6d06e1aeccddbdc631d60 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * $Id: nbpunrgstr.c,v 1.9 2009-10-14 02:24:05 didg Exp $
+ * $Id: nbpunrgstr.c,v 1.10 2009-10-29 11:35:58 didg Exp $
  *
  * Copyright (c) 1990,1991 Regents of The University of Michigan.
  * All Rights Reserved.
@@ -94,7 +94,7 @@ int main(int ac, char **av)
 
     /* Convert the name */
     if ((size_t)(-1) == convert_string_allocate(CH_UNIX, chMac, 
-                        av[optind], strlen(av[optind]), &convname))
+                        av[optind], -1, &convname))
         convname = av[optind]; 
 
     /*
index 46bd684f9a92ef1bc9cb0d89136738c60dbca33f..a766d26f5a74762f9c3ff7102e6388bd661cc2a6 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * $Id: afp_config.c,v 1.27 2009-02-16 12:56:42 franklahm Exp $
+ * $Id: afp_config.c,v 1.28 2009-10-29 11:35:58 didg Exp $
  *
  * Copyright (c) 1997 Adrian Sun (asun@zoology.washington.edu)
  * All Rights Reserved.  See COPYRIGHT.
@@ -117,7 +117,7 @@ static char * srvloc_encode(const struct afp_options *options, const char *name)
 
        /* Convert name to maccharset */
         if ((size_t)-1 ==(convert_string_allocate( options->unixcharset, options->maccharset,
-                        name, strlen(name), &conv_name)) )
+                        name, -1, &conv_name)) )
                return (char*)name;
 
        /* Escape characters */
index 1e5038330c84bbc637d34aaa97414a7a287b6213..82d66adc87a160b75b24153e29ae0eb3798788a9 100644 (file)
@@ -301,7 +301,7 @@ static int crit_check(struct vol *vol, struct path *path) {
 
        /* Check for filename */
        if ((c1.rbitmap & (1<<DIRPBIT_LNAME))) { 
-               if ( (size_t)(-1) == (len = convert_string(vol->v_maccharset, CH_UCS2, path->m_name, strlen(path->m_name), convbuf, 512)) )
+               if ( (size_t)(-1) == (len = convert_string(vol->v_maccharset, CH_UCS2, path->m_name, -1, convbuf, 512)) )
                        goto crit_check_ret;
 
                if ((c1.rbitmap & (1<<CATPBIT_PARTIAL))) {
@@ -826,7 +826,7 @@ static int catsearch_afp(AFPObj *obj _U_, char *ibuf, size_t ibuflen,
         /* Get the long filename */    
                memcpy(tmppath, bspec1 + spec1[1] + 1, (bspec1 + spec1[1])[0]);
                tmppath[(bspec1 + spec1[1])[0]]= 0;
-               len = convert_string ( vol->v_maccharset, CH_UCS2, tmppath, strlen(tmppath), c1.lname, sizeof(c1.lname));
+               len = convert_string ( vol->v_maccharset, CH_UCS2, tmppath, -1, c1.lname, sizeof(c1.lname));
         if (len == (size_t)(-1))
             return AFPERR_PARAM;
 
index 085bd4d2da6adfc0ab3dd12d6edfa9658ea971cd..cd64283f43aea797385df38722f6ee1a9d7e8be2 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * $Id: directory.c,v 1.115 2009-10-29 09:47:11 didg Exp $
+ * $Id: directory.c,v 1.116 2009-10-29 11:35:58 didg Exp $
  *
  * Copyright (c) 1990,1993 Regents of The University of Michigan.
  * All Rights Reserved.  See COPYRIGHT.
@@ -622,7 +622,7 @@ caseenumerate(const struct vol *vol, struct path *path, struct dir *dir)
 
 
     /* LOG(log_debug, logtype_afpd, "caseenumerate: for %s", path->u_name); */
-    if ((size_t) -1 == convert_string(vol->v_volcharset, CH_UCS2, path->u_name, strlen(path->u_name), u2_path, sizeof(u2_path)) ) 
+    if ((size_t) -1 == convert_string(vol->v_volcharset, CH_UCS2, path->u_name, -1, u2_path, sizeof(u2_path)) ) 
         LOG(log_debug, logtype_afpd, "caseenumerate: conversion failed for %s", path->u_name);
 
     /*LOG(log_debug, logtype_afpd, "caseenumerate: dir: %s, path: %s", dir->d_u_name, path->u_name); */
@@ -631,7 +631,7 @@ caseenumerate(const struct vol *vol, struct path *path, struct dir *dir)
         if (NULL == check_dirent(vol, de->d_name))
             continue;
 
-        if ((size_t) -1 == convert_string(vol->v_volcharset, CH_UCS2, de->d_name, strlen(de->d_name), u2_dename, sizeof(u2_dename)) )
+        if ((size_t) -1 == convert_string(vol->v_volcharset, CH_UCS2, de->d_name, -1, u2_dename, sizeof(u2_dename)) )
             continue;
 
         if (strcasecmp_w( u2_path, u2_dename) == 0) {
@@ -954,7 +954,7 @@ struct dir *
         LOG(log_error, logtype_afpd, "adddir: malloc: %s", strerror(errno) );
         return NULL;
     }
-    if ((size_t)-1 == convert_string_allocate((utf8_encoding())?CH_UTF8_MAC:vol->v_maccharset, CH_UCS2, path->m_name, strlen(path->m_name), (char **)&cdir->d_m_name_ucs2)) {
+    if ((size_t)-1 == convert_string_allocate((utf8_encoding())?CH_UTF8_MAC:vol->v_maccharset, CH_UCS2, path->m_name, -1, (char **)&cdir->d_m_name_ucs2)) {
         LOG(log_error, logtype_afpd, "Couldn't set UCS2 name for %s", name);
         cdir->d_m_name_ucs2 = NULL;
     }
@@ -1335,7 +1335,7 @@ cname(struct vol *vol, struct dir *dir, char **cpath)
             scdir = NULL;
            if ( cdir && (vol->v_flags & AFPVOL_CASEINSEN) &&
                     (size_t)-1 != convert_string_allocate(((ret.m_type == 3)?CH_UTF8_MAC:vol->v_maccharset), 
-                                                          CH_UCS2, path, strlen(path), (char **)&tmpname) )
+                                                          CH_UCS2, path, -1, (char **)&tmpname) )
             {
                 while (cdir) {
                     if (!cdir->d_m_name_ucs2) {
@@ -2474,7 +2474,7 @@ int renamedir(const struct vol *vol, char *src, char *dst,
        free(dir->d_m_name_ucs2);
 
     dir->d_m_name_ucs2 = NULL;
-    if ((size_t)-1 == convert_string_allocate((utf8_encoding())?CH_UTF8_MAC:vol->v_maccharset, CH_UCS2, dir->d_m_name, strlen(dir->d_m_name), (char**)&dir->d_m_name_ucs2))
+    if ((size_t)-1 == convert_string_allocate((utf8_encoding())?CH_UTF8_MAC:vol->v_maccharset, CH_UCS2, dir->d_m_name, -1, (char**)&dir->d_m_name_ucs2))
         dir->d_m_name_ucs2 = NULL;
 
     if (( parent = dir->d_parent ) == NULL ) {
@@ -2596,7 +2596,7 @@ int afp_mapid(AFPObj *obj, char *ibuf, size_t ibuflen _U_, char *rbuf, size_t *r
                 return( AFPERR_NOITEM );
             }
            len = convert_string_allocate( obj->options.unixcharset, ((!utf8)?obj->options.maccharset:CH_UTF8_MAC),
-                                            pw->pw_name, strlen(pw->pw_name), &name);
+                                            pw->pw_name, -1, &name);
        } else {
            len = 0;
            name = NULL;
@@ -2611,7 +2611,7 @@ int afp_mapid(AFPObj *obj, char *ibuf, size_t ibuflen _U_, char *rbuf, size_t *r
                 return( AFPERR_NOITEM );
             }
            len = convert_string_allocate( obj->options.unixcharset, (!utf8)?obj->options.maccharset:CH_UTF8_MAC,
-                                            gr->gr_name, strlen(gr->gr_name), &name);
+                                            gr->gr_name, -1, &name);
        } else {
            len = 0;
            name = NULL;
index 3950d6a39a38c800549b34ffcfb7399ec38ee2fe..e661538d815078000c961f562ca36db5c01c7358 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * $Id: status.c,v 1.25 2009-10-15 10:43:13 didg Exp $
+ * $Id: status.c,v 1.26 2009-10-29 11:35:58 didg Exp $
  *
  * Copyright (c) 1990,1993 Regents of The University of Michigan.
  * All Rights Reserved.  See COPYRIGHT.
@@ -88,7 +88,7 @@ static int status_server(char *data, const char *server, const struct afp_option
     nbp_name(server, &Obj, &Type, &Zone);
     if ((size_t)-1 == (len = convert_string( 
                        options->unixcharset, options->maccharset, 
-                       Obj, strlen(Obj), buf, sizeof(buf))) ) {
+                       Obj, -1, buf, sizeof(buf))) ) {
        len = MIN(strlen(Obj), 31);
        *data++ = len;
        memcpy( data, Obj, len );
@@ -417,7 +417,7 @@ static size_t status_utf8servername(char *data, int *nameoffset,
 
     if ((size_t) -1 == (len = convert_string (
                                        options->unixcharset, CH_UTF8_MAC, 
-                                       Obj, strlen(Obj), data+sizeof(namelen), maxstatuslen-offset )) ) {
+                                       Obj, -1, data+sizeof(namelen), maxstatuslen-offset )) ) {
        LOG ( log_error, logtype_afpd, "Could not set utf8 servername");
 
        /* set offset to 0 */
index 74340565b4da5dc26fe9a91195b7ad260e25fc4a..1ac037e6b939b35a0d833c319f27a19fa00e748d 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * $Id: uam.c,v 1.30 2009-10-22 12:35:38 franklahm Exp $
+ * $Id: uam.c,v 1.31 2009-10-29 11:35:58 didg Exp $
  *
  * Copyright (c) 1999 Adrian Sun (asun@zoology.washington.edu)
  * All Rights Reserved.  See COPYRIGHT.
@@ -270,7 +270,7 @@ struct passwd *uam_getname(void *private, char *name, const int len)
 #ifndef NO_REAL_USER_NAME
 
     if ( (size_t) -1 == (namelen = convert_string((utf8_encoding())?CH_UTF8_MAC:obj->options.maccharset,
-                               CH_UCS2, name, strlen(name), username, sizeof(username))))
+                               CH_UCS2, name, -1, username, sizeof(username))))
        return NULL;
 
     setpwent();
@@ -279,10 +279,10 @@ struct passwd *uam_getname(void *private, char *name, const int len)
             *p = '\0';
 
        if ((size_t)-1 == ( gecoslen = convert_string(obj->options.unixcharset, CH_UCS2, 
-                               pwent->pw_gecos, strlen(pwent->pw_gecos), user, sizeof(username))) )
+                               pwent->pw_gecos, -1, user, sizeof(username))) )
                continue;
        if ((size_t)-1 == ( pwnamelen = convert_string(obj->options.unixcharset, CH_UCS2, 
-                               pwent->pw_name, strlen(pwent->pw_name), pwname, sizeof(username))) )
+                               pwent->pw_name, -1, pwname, sizeof(username))) )
                continue;
 
 
index 09ee47eb9c0aa35ba3c4263667b3bbd159feddac..957c18a27111deedfd0fd41d0c4b4c0f0b43b8b5 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * $Id: config.c,v 1.19 2009-10-14 02:24:05 didg Exp $
+ * $Id: config.c,v 1.20 2009-10-29 11:35:58 didg Exp $
  *
  * Copyright (c) 1990,1993 Regents of The University of Michigan.
  * All Rights Reserved. See COPYRIGHT.
@@ -678,7 +678,7 @@ int zone(struct interface *iface, char **av)
     }
 
     /* codepage conversion */
-    if ((size_t)(-1) == convert_string_allocate(CH_UNIX, CH_MAC, av[0], strlen(av[0]), &zname)) {
+    if ((size_t)(-1) == convert_string_allocate(CH_UNIX, CH_MAC, av[0], -1, &zname)) {
        zname = strdup(av[0]);
     }
 
index 3b817b9f4d3c7d1cdca4d496ad517b9dafcdf377..e077a8d5b03fb3d86d12d03b57c6d9c16b9dc866 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * $Id: lp.c,v 1.31 2009-10-22 13:40:11 franklahm Exp $
+ * $Id: lp.c,v 1.32 2009-10-29 11:35:58 didg Exp $
  *
  * Copyright (c) 1990,1994 Regents of The University of Michigan.
  * All Rights Reserved.  See COPYRIGHT.
@@ -164,7 +164,7 @@ static void translate(charset_t from, charset_t dest, char **option)
     if (*option != NULL) {
         convert_octal(*option, from);
         if (from) {
-             if ((size_t) -1 != (convert_string_allocate(from, dest, *option, strlen(*option), &translated)) ) {
+             if ((size_t) -1 != (convert_string_allocate(from, dest, *option, -1, &translated)) ) {
                  free (*option);
                  *option = translated;
              }
index fb243039f4959ae518b8b3dc927960c7f62c9239..159f616d1564017c6380c9bf25765b945e5a162e 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * $Id: main.c,v 1.29 2009-10-14 02:24:05 didg Exp $
+ * $Id: main.c,v 1.30 2009-10-29 11:35:58 didg Exp $
  *
  * Copyright (c) 1990,1995 Regents of The University of Michigan.
  * All Rights Reserved.  See COPYRIGHT.
@@ -291,7 +291,7 @@ int main(int ac, char **av)
        }
 
        if (!(pr->p_flags & P_CUPS)) {
-               if ((size_t)-1 != convert_string_allocate(CH_UNIX, CH_MAC, pr->p_name, strlen(pr->p_name), &atname)) {
+               if ((size_t)-1 != convert_string_allocate(CH_UNIX, CH_MAC, pr->p_name, -1, &atname)) {
                        pr->p_u_name = pr->p_name;
                        pr->p_name = atname;
                }
index 1cad95a72b4facc6db3df40b8f09d170053636c3..c0e293693adc2d76cbe792d9e98713df2fdecf18 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * $Id: print_cups.c,v 1.4 2009-10-13 22:55:37 didg Exp $
+ * $Id: print_cups.c,v 1.5 2009-10-29 11:35:58 didg Exp $
  *
  * Copyright 2004 Bjoern Fernhomberg.
  *
@@ -392,7 +392,7 @@ cups_autoadd_printers ( struct printer      *defprinter, struct printer *printers)
 
                /* convert from CUPS to local encoding */
                 convert_string_allocate( add_charset(cupsLangEncoding(language)), CH_UNIX, 
-                                         dests[i].name, strlen(dests[i].name), &pr->p_u_name);
+                                         dests[i].name, -1, &pr->p_u_name);
 
                /* convert CUPS name to Mac charset */
                if ( convert_to_mac_name ( cupsLangEncoding(language), dests[i].name, name, sizeof(name)) <= 0)
@@ -533,7 +533,7 @@ static int convert_to_mac_name ( char * encoding, char * inptr, char * outptr, s
 
        /* Change the encoding */
        if ((charset_t)-1 != (chCups = add_charset(encoding))) {
-               name_len = convert_string_allocate( chCups, CH_MAC, inptr, strlen(inptr), &outbuf);
+               name_len = convert_string_allocate( chCups, CH_MAC, inptr, -1, &outbuf);
        }
 
        if (name_len == 0 || name_len == (size_t)-1) {
index b36b3a6ca62fad5d80ceaad2d1d4d00e8961d65c..9e7fcfeadc5e2ca5b6560ea825e46d9a828f2615 100644 (file)
@@ -319,9 +319,9 @@ static size_t convert_string_internal(charset_t from, charset_t to,
        /* Fixed based on Samba 3.0.6 */
        if (srclen == (size_t)-1) {
                if (from == CH_UCS2) {
-                       srclen = (strlen_w((const ucs2_t *)src)+1) * 2;
+                       srclen = (strlen_w((const ucs2_t *)src)) * 2;
                } else {
-                       srclen = strlen((const char *)src)+1;
+                       srclen = strlen((const char *)src);
                }
        }