sq = get_acl(type, id, NULL);
while (sq_remove_data(sq, &m))
{
- if (m->type != 'S' && m->name != NULL)
+ if (m->name == NULL)
+ {
+ fprintf(stderr, "Found string_id with no associated string. Exiting.\n");
+ exit(MR_DBMS_ERR);
+ }
+ if (m->type != 'S')
{
canon_krb(m, vers, kbuf, sizeof(kbuf));
fprintf(out, "%s\n", kbuf);
static void save_imember(struct save_queue *sq, char *type, int id, char *tag)
{
EXEC SQL BEGIN DECLARE SECTION;
- int lid = id, mid, mid2, tagid;
+ int lid = id, mid, mid2, tagid, status;
char mtype[IMEMBERS_MEMBER_TYPE_SIZE];
EXEC SQL END DECLARE SECTION;
char *mtag;
switch (*type)
{
case 'U':
- sq_save_data(sq, imember('U', user_lookup(id), tag));
+ EXEC SQL SELECT status INTO :status FROM users WHERE users_id = :id;
+ if (status != 3)
+ sq_save_data(sq, imember('U', user_lookup(id), tag));
break;
case 'K':