[srvx-commits] CVS: services/src nickserv.c,1.258,1.259
Brought to you by:
entrope
From: Entrope <en...@us...> - 2003-09-26 15:28:21
|
Update of /cvsroot/srvx/services/src In directory sc8-pr-cvs1:/tmp/cvs-serv3906/src Modified Files: nickserv.c Log Message: formatting changes to make profiling more accurate do not free() keys in nickserv_allow_auth_dict (avoids double free hazard due to a missing strdup()) Index: nickserv.c =================================================================== RCS file: /cvsroot/srvx/services/src/nickserv.c,v retrieving revision 1.258 retrieving revision 1.259 diff -C2 -r1.258 -r1.259 *** nickserv.c 9 Sep 2003 16:40:29 -0000 1.258 --- nickserv.c 26 Sep 2003 15:28:17 -0000 1.259 *************** *** 534,553 **** oper_has_access(struct userNode *user, struct userNode *bot, unsigned int min_level, unsigned int quiet) { if (!user->handle_info) { ! if (!quiet) send_message(user, bot, MSG_AUTHENTICATE); return 0; } if (!IsOper(user) && (!IsHelping(user) || min_level)) { ! if (!quiet) send_message(user, bot, NSMSG_NO_ACCESS); return 0; } if (HANDLE_FLAGGED(user->handle_info, OPER_SUSPENDED)) { ! if (!quiet) send_message(user, bot, MSG_OPER_SUSPENDED); return 0; } if (user->handle_info->opserv_level < min_level) { ! if (!quiet) send_message(user, bot, NSMSG_NO_ACCESS); return 0; } --- 534,557 ---- oper_has_access(struct userNode *user, struct userNode *bot, unsigned int min_level, unsigned int quiet) { if (!user->handle_info) { ! if (!quiet) ! send_message(user, bot, MSG_AUTHENTICATE); return 0; } if (!IsOper(user) && (!IsHelping(user) || min_level)) { ! if (!quiet) ! send_message(user, bot, NSMSG_NO_ACCESS); return 0; } if (HANDLE_FLAGGED(user->handle_info, OPER_SUSPENDED)) { ! if (!quiet) ! send_message(user, bot, MSG_OPER_SUSPENDED); return 0; } if (user->handle_info->opserv_level < min_level) { ! if (!quiet) ! send_message(user, bot, NSMSG_NO_ACCESS); return 0; } *************** *** 564,568 **** /* cant register a juped nick/service nick as handle, to prevent confusion */ user = GetUserH(handle); ! if (user && IsLocal(user)) return 0; /* test either regex or containing all valid chars */ if (nickserv_conf.valid_handle_regex_set) { --- 568,573 ---- /* cant register a juped nick/service nick as handle, to prevent confusion */ user = GetUserH(handle); ! if (user && IsLocal(user)) ! return 0; /* test either regex or containing all valid chars */ if (nickserv_conf.valid_handle_regex_set) { *************** *** 584,591 **** struct userNode *user; /* first, check that the nick is acceptible by the server */ ! if (!is_valid_nick(nick)) return 0; /* cant register a juped nick/service nick.. client could kill it. */ user = GetUserH(nick); ! if (user && IsLocal(user)) return 0; /* test either regex or as valid handle */ if (nickserv_conf.valid_nick_regex_set) { --- 589,598 ---- struct userNode *user; /* first, check that the nick is acceptible by the server */ ! if (!is_valid_nick(nick)) ! return 0; /* cant register a juped nick/service nick.. client could kill it. */ user = GetUserH(nick); ! if (user && IsLocal(user)) ! return 0; /* test either regex or as valid handle */ if (nickserv_conf.valid_nick_regex_set) { *************** *** 656,660 **** int oper_outranks(struct userNode *user, struct handle_info *hi) { ! if (user->handle_info->opserv_level > hi->opserv_level) return 1; if (user->handle_info->opserv_level == hi->opserv_level) { if ((user->handle_info->opserv_level == 1000) --- 663,668 ---- int oper_outranks(struct userNode *user, struct handle_info *hi) { ! if (user->handle_info->opserv_level > hi->opserv_level) ! return 1; if (user->handle_info->opserv_level == hi->opserv_level) { if ((user->handle_info->opserv_level == 1000) *************** *** 710,734 **** len = strlen(pass); if (len < nickserv_conf.password_min_length) { ! if (user) nickserv_notice(user, NSMSG_PASSWORD_SHORT, nickserv_conf.password_min_length); return 0; } if (!irccasecmp(pass, handle)) { ! if (user) nickserv_notice(user, NSMSG_PASSWORD_ACCOUNT); return 0; } dict_find(nickserv_conf.weak_password_dict, pass, &i); if (i) { ! if (user) nickserv_notice(user, NSMSG_PASSWORD_DICTIONARY); return 0; } for (i=0; i<len; i++) { ! if (isdigit(pass[i])) cnt_digits++; ! if (isupper(pass[i])) cnt_upper++; ! if (islower(pass[i])) cnt_lower++; } if ((cnt_lower < nickserv_conf.password_min_lower) || (cnt_upper < nickserv_conf.password_min_upper) || (cnt_digits < nickserv_conf.password_min_digits)) { ! if (user) nickserv_notice(user, NSMSG_PASSWORD_READABLE, nickserv_conf.password_min_digits, nickserv_conf.password_min_upper, nickserv_conf.password_min_lower); return 0; } --- 718,749 ---- len = strlen(pass); if (len < nickserv_conf.password_min_length) { ! if (user) ! nickserv_notice(user, NSMSG_PASSWORD_SHORT, nickserv_conf.password_min_length); return 0; } if (!irccasecmp(pass, handle)) { ! if (user) ! nickserv_notice(user, NSMSG_PASSWORD_ACCOUNT); return 0; } dict_find(nickserv_conf.weak_password_dict, pass, &i); if (i) { ! if (user) ! nickserv_notice(user, NSMSG_PASSWORD_DICTIONARY); return 0; } for (i=0; i<len; i++) { ! if (isdigit(pass[i])) ! cnt_digits++; ! if (isupper(pass[i])) ! cnt_upper++; ! if (islower(pass[i])) ! cnt_lower++; } if ((cnt_lower < nickserv_conf.password_min_lower) || (cnt_upper < nickserv_conf.password_min_upper) || (cnt_digits < nickserv_conf.password_min_digits)) { ! if (user) ! nickserv_notice(user, NSMSG_PASSWORD_READABLE, nickserv_conf.password_min_digits, nickserv_conf.password_min_upper, nickserv_conf.password_min_lower); return 0; } *************** *** 1556,1560 **** return 0; } ! dict_insert(nickserv_allow_auth_dict, strdup(target->nick), hi); nickserv_notice(user, NSMSG_AUTH_ALLOWED, target->nick, hi->handle); nickserv_notice(target, NSMSG_AUTH_ALLOWED_MSG, hi->handle, hi->handle); --- 1571,1575 ---- return 0; } ! dict_insert(nickserv_allow_auth_dict, target->nick, hi); nickserv_notice(user, NSMSG_AUTH_ALLOWED, target->nick, hi->handle); nickserv_notice(target, NSMSG_AUTH_ALLOWED_MSG, hi->handle, hi->handle); *************** *** 3376,3385 **** dict_delete(nickserv_id_dict); dict_delete(nickserv_conf.weak_password_dict); ! if (auth_func_list) free(auth_func_list); ! if (unreg_func_list) free(unreg_func_list); ! if (rf_list) free(rf_list); ! if (allowauth_func_list) free(allowauth_func_list); ! if (handle_merge_func_list) free(handle_merge_func_list); ! if (failpw_func_list) free(failpw_func_list); if (nickserv_conf.valid_handle_regex_set) regfree(&nickserv_conf.valid_handle_regex); if (nickserv_conf.valid_nick_regex_set) regfree(&nickserv_conf.valid_nick_regex); --- 3391,3400 ---- dict_delete(nickserv_id_dict); dict_delete(nickserv_conf.weak_password_dict); ! free(auth_func_list); ! free(unreg_func_list); ! free(rf_list); ! free(allowauth_func_list); ! free(handle_merge_func_list); ! free(failpw_func_list); if (nickserv_conf.valid_handle_regex_set) regfree(&nickserv_conf.valid_handle_regex); if (nickserv_conf.valid_nick_regex_set) regfree(&nickserv_conf.valid_nick_regex); *************** *** 3479,3483 **** nickserv_allow_auth_dict = dict_new(); - dict_set_free_keys(nickserv_allow_auth_dict, free); userList_init(&curr_helpers); --- 3494,3497 ---- |