tokens = lfirst(field);
IDENT_MULTI_VALUE(tokens);
token = linitial(tokens);
- parsedline->pg_user = pstrdup(token->string);
+ parsedline->pg_user = copy_auth_token(token);
/*
* Now that the field validation is done, compile a regex from the user
return;
}
- if ((ofs = strstr(identLine->pg_user, "\\1")) != NULL)
+ if ((ofs = strstr(identLine->pg_user->string, "\\1")) != NULL)
{
int offset;
ereport(LOG,
(errcode(ERRCODE_INVALID_REGULAR_EXPRESSION),
errmsg("regular expression \"%s\" has no subexpressions as requested by backreference in \"%s\"",
- identLine->system_user->string + 1, identLine->pg_user)));
+ identLine->system_user->string + 1, identLine->pg_user->string)));
*error_p = true;
return;
}
* length: original length minus length of \1 plus length of match
* plus null terminator
*/
- expanded_pg_user = palloc0(strlen(identLine->pg_user) - 2 + (matches[1].rm_eo - matches[1].rm_so) + 1);
- offset = ofs - identLine->pg_user;
- memcpy(expanded_pg_user, identLine->pg_user, offset);
+ expanded_pg_user = palloc0(strlen(identLine->pg_user->string) - 2 + (matches[1].rm_eo - matches[1].rm_so) + 1);
+ offset = ofs - identLine->pg_user->string;
+ memcpy(expanded_pg_user, identLine->pg_user->string, offset);
memcpy(expanded_pg_user + offset,
system_user + matches[1].rm_so,
matches[1].rm_eo - matches[1].rm_so);
else
{
/* no substitution, so copy the match */
- expanded_pg_user = pstrdup(identLine->pg_user);
+ expanded_pg_user = pstrdup(identLine->pg_user->string);
}
/*
/* Not regular expression, so make complete match */
if (case_insensitive)
{
- if (pg_strcasecmp(identLine->pg_user, pg_user) == 0 &&
+ if (pg_strcasecmp(identLine->pg_user->string, pg_user) == 0 &&
pg_strcasecmp(identLine->system_user->string, system_user) == 0)
*found_p = true;
}
else
{
- if (strcmp(identLine->pg_user, pg_user) == 0 &&
+ if (strcmp(identLine->pg_user->string, pg_user) == 0 &&
strcmp(identLine->system_user->string, system_user) == 0)
*found_p = true;
}
{
newline = (IdentLine *) lfirst(parsed_line_cell);
free_auth_token(newline->system_user);
+ free_auth_token(newline->pg_user);
}
MemoryContextDelete(ident_context);
return false;
{
newline = (IdentLine *) lfirst(parsed_line_cell);
free_auth_token(newline->system_user);
+ free_auth_token(newline->pg_user);
}
}
if (parsed_ident_context != NULL)