Fri, 03 Aug 2012 20:11:53 +0200
Neutralize buggy code causing OpenPKG to have 'fatal problems' in
spite of correct installation, configuration, and operation. An
administrator suffering from this failure is even unable to
uninstall the flawed software.
michael@182 | 1 | Index: mod_otp/mod_otp.c |
michael@182 | 2 | --- mod_otp/mod_otp.c.orig 2006-12-06 17:13:06 +0100 |
michael@182 | 3 | +++ mod_otp/mod_otp.c 2009-01-27 08:33:56 +0100 |
michael@182 | 4 | @@ -79,7 +79,7 @@ |
michael@182 | 5 | CHECK_CONF(cmd, CONF_ROOT|CONF_VIRTUAL|CONF_GLOBAL); |
michael@182 | 6 | |
michael@182 | 7 | bool = get_boolean(cmd, 1); |
michael@182 | 8 | - if ((bool == -1) |
michael@182 | 9 | + if (bool == -1) |
michael@182 | 10 | CONF_ERROR(cmd, "expecting Boolean parameter"); |
michael@182 | 11 | |
michael@182 | 12 | c = add_config_param(cmd->argv[0], 1, NULL); |
michael@182 | 13 | @@ -128,7 +128,7 @@ |
michael@182 | 14 | ": error generating challenge for user '%s': %s", cmd->argv[1], str); |
michael@182 | 15 | |
michael@182 | 16 | } else |
michael@182 | 17 | - pr_add_response_dup(R_DUP, "Challenge: [ %s ]", challenge); |
michael@182 | 18 | + pr_response_add(R_DUP, "Challenge: [ %s ]", challenge); |
michael@182 | 19 | |
michael@182 | 20 | return DECLINED(cmd); |
michael@182 | 21 | } |
michael@182 | 22 | Index: mod_sql_odbc/mod_sql_odbc.c |
michael@182 | 23 | --- mod_sql_odbc/mod_sql_odbc.c.orig 2007-04-17 17:05:18 +0200 |
michael@182 | 24 | +++ mod_sql_odbc/mod_sql_odbc.c 2009-01-27 19:16:56 +0100 |
michael@182 | 25 | @@ -890,8 +890,8 @@ |
michael@182 | 26 | |
michael@182 | 27 | /* Set up our timer, if necessary. */ |
michael@182 | 28 | if (entry->ttl > 0) { |
michael@182 | 29 | - entry->timer = add_timer(entry->ttl, -1, &sql_odbc_module, |
michael@182 | 30 | - sqlodbc_timer_cb); |
michael@182 | 31 | + entry->timer = pr_timer_add(entry->ttl, -1, &sql_odbc_module, |
michael@182 | 32 | + sqlodbc_timer_cb, "mod_sql_odbc TTL"); |
michael@182 | 33 | |
michael@182 | 34 | sql_log(DEBUG_INFO, "'%s' connection: %d second timer started", |
michael@182 | 35 | entry->name, entry->ttl); |
michael@182 | 36 | Index: mod_sql_sqlite/mod_sql_sqlite.c |
michael@182 | 37 | --- mod_sql_sqlite/mod_sql_sqlite.c.orig 2007-05-21 17:37:11 +0200 |
michael@182 | 38 | +++ mod_sql_sqlite/mod_sql_sqlite.c 2009-01-27 19:15:57 +0100 |
michael@182 | 39 | @@ -236,8 +236,8 @@ |
michael@182 | 40 | |
michael@182 | 41 | /* Set up our timer, if necessary. */ |
michael@182 | 42 | if (entry->ttl > 0) { |
michael@182 | 43 | - entry->timer = add_timer(entry->ttl, -1, &sql_sqlite_module, |
michael@182 | 44 | - sql_sqlite_timer_cb); |
michael@182 | 45 | + entry->timer = pr_timer_add(entry->ttl, -1, &sql_sqlite_module, |
michael@182 | 46 | + sql_sqlite_timer_cb, "mod_sql_sqlite TTL"); |
michael@182 | 47 | |
michael@182 | 48 | sql_log(DEBUG_INFO, "'%s' connection: %d second timer started", |
michael@182 | 49 | entry->name, entry->ttl); |
michael@182 | 50 | Index: mod_time/mod_time.c |
michael@182 | 51 | --- mod_time/mod_time.c.orig 2004-05-12 20:57:06 +0200 |
michael@182 | 52 | +++ mod_time/mod_time.c 2009-01-27 08:33:56 +0100 |
michael@182 | 53 | @@ -146,7 +146,7 @@ |
michael@182 | 54 | /* If we don't have a password file, we create an empty array and punt. |
michael@182 | 55 | */ |
michael@182 | 56 | if (!pw) { |
michael@182 | 57 | - if (!name || !(pw = (struct passwd *) auth_getpwnam(p, name))) { |
michael@182 | 58 | + if (!name || !(pw = (struct passwd *) pr_auth_getpwnam(p, name))) { |
michael@182 | 59 | *gids = make_array(p, 2, sizeof(gid_t)); |
michael@182 | 60 | *groups = make_array(p, 2, sizeof(char *)); |
michael@182 | 61 | return; |
michael@182 | 62 | @@ -172,7 +172,7 @@ |
michael@182 | 63 | /* Now populate the names of the groups. |
michael@182 | 64 | */ |
michael@182 | 65 | for (i = 0; i < total; i++) { |
michael@182 | 66 | - if ((gr = (struct group *) auth_getgrgid(p, ((gid_t *) xgids->elts)[i]))) |
michael@182 | 67 | + if ((gr = (struct group *) pr_auth_getgrgid(p, ((gid_t *) xgids->elts)[i]))) |
michael@182 | 68 | *((char **) push_array(xgroups)) = pstrdup(p, gr->gr_name); |
michael@182 | 69 | } |
michael@182 | 70 | |
michael@182 | 71 | @@ -188,7 +188,7 @@ |
michael@182 | 72 | /* Nothing there...punt. |
michael@182 | 73 | */ |
michael@182 | 74 | if (!pw) { |
michael@182 | 75 | - if (!name || !(pw = (struct passwd *) auth_getpwnam(p, name))) { |
michael@182 | 76 | + if (!name || !(pw = (struct passwd *) pr_auth_getpwnam(p, name))) { |
michael@182 | 77 | *gids = xgids; |
michael@182 | 78 | *groups = xgroups; |
michael@182 | 79 | return; |
michael@182 | 80 | @@ -197,16 +197,16 @@ |
michael@182 | 81 | |
michael@182 | 82 | /* Populate the first group name. |
michael@182 | 83 | */ |
michael@182 | 84 | - if ((gr = auth_getgrgid(p, pw->pw_gid)) != NULL) |
michael@182 | 85 | + if ((gr = pr_auth_getgrgid(p, pw->pw_gid)) != NULL) |
michael@182 | 86 | *((char **) push_array(xgroups)) = pstrdup(p, gr->gr_name); |
michael@182 | 87 | |
michael@182 | 88 | - auth_setgrent(p); |
michael@182 | 89 | + pr_auth_setgrent(p); |
michael@182 | 90 | |
michael@182 | 91 | /* This is where things get slow, expensive, and ugly. |
michael@182 | 92 | * Loop through everything, checking to make sure we haven't already added |
michael@182 | 93 | * it. This is why we have getgroups() and company. |
michael@182 | 94 | */ |
michael@182 | 95 | - while ((gr = auth_getgrent(p)) != NULL && gr->gr_mem) |
michael@182 | 96 | + while ((gr = pr_auth_getgrent(p)) != NULL && gr->gr_mem) |
michael@182 | 97 | for (gr_mem = gr->gr_mem; *gr_mem; gr_mem++) { |
michael@182 | 98 | if (strcmp(*gr_mem, pw->pw_name) == 0) { |
michael@182 | 99 | *((int *) push_array(xgids)) = (int) gr->gr_gid; |
michael@182 | 100 | @@ -634,7 +634,7 @@ |
michael@182 | 101 | if (!session.user) { |
michael@182 | 102 | /* Populate the pw struct, check for a NULL return value. */ |
michael@182 | 103 | |
michael@182 | 104 | - if ((pw = auth_getpwnam(cmd->tmp_pool, user)) == NULL) |
michael@182 | 105 | + if ((pw = pr_auth_getpwnam(cmd->tmp_pool, user)) == NULL) |
michael@182 | 106 | return NULL; |
michael@182 | 107 | |
michael@182 | 108 | time_user = pstrdup(session.pool, pw->pw_name); |
michael@182 | 109 | @@ -1603,7 +1603,7 @@ |
michael@182 | 110 | "%R", (session.c && session.c->remote_name ? session.c->remote_name : "(unknown)"), |
michael@182 | 111 | "%L", main_server->ServerFQDN, |
michael@182 | 112 | "%U", user, |
michael@182 | 113 | - "%u", session.ident_user, |
michael@182 | 114 | + "%u", session.user, |
michael@182 | 115 | "%M", mesg_max, |
michael@182 | 116 | "%N", mesg_cur, |
michael@182 | 117 | "%E", main_server->ServerAdmin, |