]> git.ipfire.org Git - thirdparty/sarg.git/commitdiff
Mangled file name is really unique
authorFrederic Marchal <fmarchal@users.sourceforge.net>
Fri, 4 Jan 2013 19:08:13 +0000 (20:08 +0100)
committerFrederic Marchal <fmarchal@users.sourceforge.net>
Fri, 4 Jan 2013 19:08:13 +0000 (20:08 +0100)
Due to a bug, any user's ID containing at least two consecutive non
alphanumeric characters was not unique.

userinfo.c

index 9117a23614e6ae4f5b257742514049f1f7e5de0e..e433ea1313a9766cc04ede82a3186088850af9eb 100644 (file)
@@ -108,15 +108,15 @@ struct userinfostruct *userinfo_create(const char *userid)
                        }
                }
                if (j==0) user->filename[j++]='_'; //don't leave a file name empty
+               flen=j;
                user->filename[j]='\0';
-               flen=i-1;
 
                count=0;
                for (group=first_user_group ; group ; group=group->next) {
                        lastuser=(group->next) ? group->nusers : group->nusers-1;
                        for (i=0 ; i<lastuser ; i++) {
                                if (strcasecmp(user->filename,group->list[i].filename)==0) {
-                                       clen=sprintf(cstr,"-%04X",count++);
+                                       clen=sprintf(cstr,"+%X",count++);
                                        if (flen+clen<MAX_USER_FNAME_LEN)
                                                strcpy(user->filename+flen,cstr);
                                        else