if (flags == NULL) flags = PR_smprintf("");
pk11_makeSlotFlags(unsigned long defaultFlags){    char *flags=NULL;    char *ret=NULL;    int i,j;    for (i=0; i < sizeof(defaultFlags)*8; i++) {	if (defaultFlags & (1<<i)) {	    char *string = NULL;	    for (j=0; j < pk11_argSlotFlagTableSize; j++) {		if (pk11_argSlotFlagTable[j].value == (1<<i)) {		    string = pk11_argSlotFlagTable[j].name;		    break;		}	    }	    if (string) {		if (flags) {		    char *tmp;		    tmp = PR_smprintf("%s,%s",flags,string);		    PR_smprintf_free(flags);		    flags = tmp;		} else {		    flags = PR_smprintf("%s",string);		}	    }	}    }    if (flags == NULL) flags = PR_smprintf("");    return flags;}