diff --git a/src/sso/sso.c b/src/sso/sso.c index 985237f90fe35f5a5020b38e849f12e3d70c17bc..e4b2263514473f98c7cb32d778254133a3c9f910 100644 --- a/src/sso/sso.c +++ b/src/sso/sso.c @@ -210,16 +210,15 @@ static int sso_ticket_deserialize(sso_ticket_t *t, char *s) { sso_ticket_t tmp = sso_ticket_new(NULL, NULL, NULL, NULL, NULL, NULL, 0); int i; - /* - * Split s into fields, which may be empty. - */ + // Split s into fields, which may be empty. for (i = 0, ss = s; ss; i++) { token = ss; ss = strchr(ss, FIELD_SEP_CH); if (ss != NULL) { *ss++ = '\0'; } - if (*token == 0) { + // Skip empty fields, except for the first one. + if (i > 0 && *token == 0) { continue; } switch (i) {