LINUX.ORG.RU

Сообщения nial

 

Ошибка в коде...

Форум — Development

как всегда, есть код (приведен ниже).
при запуске программы вылетает:
*** glibc detected *** malloc(): memory corruption (fast): 0x0804f070 ***
Aborted

что должна делает программа: в функцию char ** get_elements() передается строка "3, 4, 5, 6". эта функция должна создать char **, раскидав в каждый char * строки: "3", " 4", " 5", " 6".
т.е.

char ** rrr = NULL;
rrr = get_elements("3, 4, 5, 6");

после должно быть так:

rrr[0] = "3";
rrr[1] = " 4";
rrr[2] = " 5";
rrr[3] = " 6";
rrr[4] = NULL;

вся суть в функции get_elements() - вот только где там ошибка я так и не понял.
подскажите, плиз.
ЗЫ: функции add_char_to_string() и safe_free() никогда не подводили.

void safe_free(char ** str)
{
        if (!(*str))
                return;

        free(*str);
        *str = NULL;
};

char * add_char_to_string(char * str, char byte)
{
        char * result = NULL;
        unsigned int len = 0;

        if (!str)
                len = 0;
        else
                len = strlen(str);

        result = (char*) calloc(len+2, sizeof(char));

        if (!result)
                return NULL;

        if (len != 0)
                strcat(result,str);

        result[len] = byte;
        result[len+1] = '\0';

        if (str)
                safe_free(&str);

        return result;
};

char ** get_elements(char * params)
{
        char ** result = NULL;
        unsigned int len = 0, i = 0, k = 0;
        char * temp = NULL;

        if (!params)
                return NULL;

        if (strlen(params) == 0)
                return NULL;

        len = strlen(params);

        while (1) {

                for(; i < len; i++) {

                        if (params[i] == ',')
                                break;

                        temp = add_char_to_string(temp, params[i]);
                }
                k++;
                i++;

                if (!result)
                        result = (char **) calloc(k + 1, sizeof(char *));
                else
                        result = (char**) realloc(result, k + 1);

                result[k] = 0;
                result[k-1] = temp;

                if (i >= len) {
                        break;
                }

                temp = NULL;
        }

        return result;
}

int main(int argc, char *argv[])
{
        char ** rrr = NULL;

        rrr = get_elements("3, 4, 5, 6");

        if (!rrr) {
                printf("Wrong\n");
        }
        else {
                printf("Not bad\n");
        }

        return EXIT_SUCCESS;
};
nial
()

освободить консоль

Форум — Development

как это сделать ?
язык: С.
спасибо.

nial
()

Cyrus IMAP trouble

Форум — Admin

# nc localhost 110
+OK gigant Cyrus POP3 v2.2.12-Gentoo server ready <1392129762.1135859107@gigant>
USER zan
+OK Name is a valid mailbox
PASS ***
-ERR [SYS/PERM] Unable to locate maildrop: Mailbox does not exist
QUIT
+OK

совсем не могу понять, что за ошибка... новый год уж как близко, а трабл остался )
я меня сеть аналогичная работающая система (второй сервер), и там не такой проги, конфиги тоже слиты с работающего... видать, чет с правами доступа, того вот где...
гадать тут нет смысла, надо все проверять, но может кто-то уже сталкивался.

nial
()

using tar

Форум — General

tar не хочет брать в архив файлы .htaccess
tar -cf www.tar ./*

если дать:
tar -cf www.tar ./.*
то он ждет ввода с консоли...

есть идеи ?

nial
()

Трансферт зоны в Bind

Форум — Admin

такая проблема:
я хоу чтобы slave сервер не делал transfer не пройдя аутентификацию на master'е.
проблема вот в чем: мастер стоит за NAT'ом (т.е. проверка ip адресов не катит).
а вот что я хочу - чтоб мастер запрашивал аутентификацию только при transfer'те зоны. читал http://www.bind9.net/manual/bind/9.3.1/Bv9ARM.ch06.html -вроде таких опций нет.
может кто-нибудь делал такое.
спасибо.

nial
()

Удаление файлов

Форум — Admin

такоя проблемы: удалил файл /var/log/aaa.log
при этом дисковое пространство не освободилось - видимо, либо это файл открыт каким-то приложением, либо на него имееться жесткая ссылка.

как освободить место занимаемое в прошлом этим файлом ? (без перезагрузки и останова процессов).
спасибо.

nial
()

Заморочки из бочки с /sbin/ip

Форум — Admin

даю:
/sbin/ip route get 1.1.1.1 from 172.16.4.247
в ответ:
RTNETLINK answers: Invalid argument

т.е., я зочу узнать, как будет маршрутизировать ядро пакеты от 172.16.4.247 до 1.1.1.1, но никак не могу этого сделать.

система - gentoo

подскажите плиз, правильно даю команду ?

nial
()

Настройка zebr'ы

Форум — Admin

в общем, есть две машины, которые залинкованы двумя сетевыми (т.е. в каждой из них стоит две сетевых карты, и на каждой одна смотрит в 192.168.1.0./24, другая в 192.168.2.0/24).

я зочу чтоб по-умолчанию пакеты жемду двумя машинами ходили через 1-у сеть, а если она упадет - через 2-ю.

как я понимаю, здесь нужны статические маршруты....
вот что я кинул в zebra.conf (для одной из машин):

ip route 192.168.1.0/24 eth1
ip route 192.168.2.0/24 192.168.1.254

ip route 192.168.1.0/24 192.168.2.254
ip route 192.168.2.0/24 eth2

вопрос: будет ли так работать, либо надо еще подымать ospfd ?
я че спрашиваю - покамись не могу это протестить, а настроить заранее надо.

спасибо )

nial
()

Скорость интерфейса

Форум — Admin

Надо узнать скорость передаич нанных по, допустим, eth1.
пробовал iptraf - но он теряет пакеты, и в то время как tcpdump показывает сотни пакетов в секунду, iptraf пишет 0.2 packets/sec ))

что можно для этого поюзать ?
mrtg работает, но надо чет другое, чтоб с консоли запустить.

спасибо.

nial
()

/sbin/ip

Форум — Admin

у меня есть правила в /sbin/ip
32750: from 172.16.4.247 lookup some_table

в таблице some_table:
192.168.169.1 dev eth1 scope link src 192.168.169.2
127.0.0.0/8 dev lo scope link
default via 192.168.169.1 dev eth1

как мне проверить, что пакеты от 172.16.4.247 действительно ли апкеты зодят по такому маршруту...
дело в том, что слушаю eth1 - там глухо.

т.е, венрнее так: как мне точно узнать куда (по какому правилу) пусткает ядро пакеты.

спасибо.

nial
()

Отключить обработку символа ? при запросе к Apache

Форум — Admin

надо чтоб Apache открывал файлы с сиволом '?'
например, pg.pl?nav=uk22&page=battle

т.е., как отключить эти скриптовые параметры ?
спасибо.

nial
()

Закрыть сокет после fork()'a

Форум — Development

В общем, проблема закрытия сокета.
Программа слушает порт:

listenfd = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
int x = 1;
setsockopt(listenfd, SOL_SOCKET, SO_REUSEADDR, &x, sizeof (x));
и т.д.

при коннекте, получает дескриптор:
clientfd = accept(listenfd, (struct sockaddr *) &cliaddr, &clilen);

потом clientfd передается процессу, запущенному через fork().
он его пытается закрыть через close(clientfd). Результат - состояние "CLOSE_WAIT" соединения.

Как я понимаю, close(clientfd) не работает из-за fork()'a. Если запустить fork() в родительском потоке - все нормально закроется.
Я читал про то, что дочерный процесс не может изменять данные родителя - ядро ему делает только копию родителя. Но, если у него копия данных родителя, то почему не работает системный вызов ? Ведь, номер дескриптора не изменился.

Возможно ли в принципе закрыть сокет, который был передан родительским процессом дочерному ?

nial
()

левый MAC

Форум — Security

начну с этого:
[root@zhuk bazil]# /sbin/arping 172.16.212.200
ARPING 172.16.212.200 from 172.16.212.85 eth0
Unicast reply from 172.16.212.200 [00:04:75:99:B1:0C]  0.688ms
Unicast reply from 172.16.212.200 [00:C0:9F:8A:A8:07]  0.991ms
Sent 1 probes (1 broadcast(s))
Received 2 response(s)
[root@zhuk bazil]# 

моя сетевая - 00:04:75:99:B1:0C.
я делал: "/sbin/arp -s 172.16.212.200 00:C0:9F:8A:A8:07" но этот МАС ни пингуется ни сканится через "nmap -P0 172.16.212.200" (говорит, ни одного ответа не получил).

сеть, в которой я работаю на 200-300 машин, свичи, хабы. 
ходить по всем компам и искать этот МАС я тоже не могу. я в принципе не понимаю: этот МАС (00:C0:9F:8A:A8:07) может быть МАС'ок железки ?
либо это обычная сетевая карта, и ее хозяин слишком умен ?
спасибо.
nial
()

безопасность в PostgreSQL

Форум — General

ух, проблема следующая:

если в MySQL можно без проблем сказать:
CREATE DATABASE some_base
GRANT USAGE ON some_base.* TO some_user@% IDENTIFIED BY some_passwd

и не будет проблем при попытке подключения с some_base другого пользователя кроме как some_user, то в PostgreSQL все наоборот (тут не помешают пару матов). Сколько манов читал, вот все что выгреб из них (postgresql-docs-8.0.3.tar.bz2):

создаю двоих пользователей:
CREATE USER aaa_user WITH NOCREATEDB NOCREATEUSER ENCRYPTED PASSWORD 'aaa';
CREATE USER bbb_user WITH NOCREATEDB NOCREATEUSER ENCRYPTED PASSWORD 'bbb';

создаю 2 базы:
CREATE DATABASE aaa OWNER aaa_user;
CREATE DATABASE bbb OWNER bbb_user;

сбрасываю привилегии:
REVOKE ALL ON DATABASE aaa FROM PUBLIC CASCADE;
REVOKE ALL ON DATABASE bbb FROM PUBLIC CASCADE;

потом:
|-<^> psql bbb aaa_user
Password:
Welcome to psql 8.0.3, the PostgreSQL interactive terminal.
bbb=> \l+
List of databases
Name | Owner | Encoding | Description
-----------+----------------+-----------+---------------------------
aaa | aaa_user | SQL_ASCII |
bbb | bbb_user | SQL_ASCII |
template0 | postgres | SQL_ASCII |
template1 | postgres | SQL_ASCII | Default template database
(4 rows)

bbb=> \du
List of users
User name | User ID | Attributes | Groups
----------------+---------+----------------------------+--------
aaa_user | 102 | |
bbb_user | 103 | |
postgres | 1 | superuser, create database |
(3 rows)

bbb=> \z
Access privileges for database "bbb"
Schema | Name | Type | Access privileges
--------+------+------+-------------------
(0 rows)

далее, как в фильме: aaa_user сможет делать все что угодно в базе 'bbb'

я начал думать, что разработчики PostgreSQL вообще не придумали никаких средств защиты базы от других пользователей (особенно мне нравится рабочая команда \l+)...

гуглил инет долго, решил сюда прийти.
может кто-нибудь админил эту субд ?
спасибо.

nial
()

Проблема скрытых файлов в PHP

Форум — Development

Есть проблема:
функция ftp_rawlist($ftp_sock, "/") не видет файл ".htaccess" - тоесть, все скрытые файлы.

Весь ман PHP перелопатил - ничего не нашел, даже в исходниках искал - там вроде нет проверок на "скрытость" фалов.

Может кто-то сталкивался ?

nial
()

Безопасность в Proftpd

Форум — Admin

Меня заинтересовали два параметра:
"RootRevoke On"
и
"CapabilitiesEngine On"

кто-то пытался выяснить, как "CapabilitiesEngine On" помогает в плане безопасности, ибо включать "RootRevoke On" не хочется - требует passive mode.

... Либо включить сразу обоих, и кричать что сервер защищен ? ))

nial
()

Изощренный FTP сервер

Форум — Admin

пытаюсь найти ftp-сервер, который бы работал на подобии courier-auth, т.е. брал бы из базы данных информацию о пользователе (name, passwd, uid/gid, homedir, qouta, ...).
кто нибудь с таким сталкивался ?

proftp хотел было, но там сплошные глупости.

ЗЫ: он мне нужен для хостинга

nial
()

Session in Apache and Register_Globals=Off

Форум — Development

Они действитедьно не могут работать вместе ?
т.е. когда включаю Register_Globals=Off у меня не создаються переменные после таких строк:

session_start();
session_register("sess_id");

На вопрос "isset($sess_id)" получаю false.
Можно ли всетаки пользоватся переменными session[...], даже если стоит Register_Globals=Off ?

nial
()

Iptables под Windows

Форум — Admin

ех, жизнь блин.

столкнулись с проблемой: надо делать сложный NAT под виндой. На iptables это реализовать можно без проблем ) Но для винды я нашел только одну программу - WinRoute.

просто крик души: есть чет намного сильнее чем WinRoute - там просто вообще идеология NAT неправильно реализована

nial
()

Лимит процессов по количеству для пользователя

Форум — Security

Для ограничения количества процессов для пользователя надо патч ставить на ядро, или это можно сделать через /etc/login.conf ?

где-то ранее видел такое, вроде в /etc/login.conf, но теперь начал искать, никак не могу найти.

может кто сталкивался с этим.
спасибо.

nial
()

RSS подписка на новые темы