Вот в каком состоянии надо быть, чтобы такое писать?
Самое печальное, что потом происходит другая лажа, которую немного непонятка как править Буду думать.
Добавлено: 15 июн 2010, 23:26
nd
Как раз исходный вариант вполне корректен, а ваш ведет к обращению к памяти за пределами массива RegUser *table[65536]. В лучшем случае будет segfault, в худшем - уязвимость с возможностью выполнения произвольного кода.
Добавлено: 16 июн 2010, 00:27
mariner
обращению к памяти за пределами массива RegUser *table[65536]
Исправил до такого вида. Вообще, я догадываюсь, что PPK хотел юзать динамик каст, то сделал костыль, которые не переваривал старый gcc и/или libc (проверено на Ubuntu 8.04 и Debian Stable). В общем может не поленюсь и сделаю на dynamic_cast
dynamic_cast для примитивных типов? Не стоит ли подучить матчасть?
Добавлено: 16 июн 2010, 00:58
nd
Казалось бы, при чем здесь dynamic_cast? Здесь выделяются первые 2 байта 4-х байтного числа. Этот код вполне себе корректный и общепринятый в Си, хотя и не частый. Вот почему решили использовать именно первые, а не, скажем, младшие (как в вашем новом варианте) - это другой вопрос. И я совсем не уверен, что этот код стоит трогать.
Добавлено: 16 июн 2010, 01:04
mariner
Возможно и стоит, однако теперь все работает, пока, как надо. Я думаю еще посмотреть как все это будет работать.
#include <iostream>
#include <stdint.h>
int main() {
uint32_t a = 1000;
uint16_t b = (uint16_t)a;
uint16_t c = ((uint16_t *)&a)[0];
std::cout << b << " --- " << c << std::endl;
return 0;
}
Я перед тем как править делал вот такую проверку (на всякий случай). результаты совпали, или я неверно проверял?
на счет динамик каст - просто я cказал, что похоже на него(ну вот ИМХО это) и я так уловил идею PPK
Добавлено: 16 июн 2010, 01:32
nd
Да, на little-endian архитектуре эти 2 строчик равнозначны. На big-endian будут различаться. Кстати, на big-endian будут частые коллизии при использовании 2-х первых байт их хеша (HashNick) как индекса.
Добавлено: 16 июн 2010, 01:40
mariner
нет, Little-endian, x86 в общем. Про колизии на big-endian все предельно ясно и так, но я не думаю, что тут много пользователей ARM, MiPS или Sparc. Просто когда при сборке с -O2 отваливается часть LuaAPI не комильфово, а -O2, это считай стандарт.
Добавлено: 19 июн 2010, 14:04
TiGRpp
nd писал(а):
Дополнительные библиотеки Lua 5.1 можно поставить через менеджер пакетов дистрибутива.
Поставил liblua5.1-sql-mysql-2 и liblua5.1-sql-mysql-deb, однако по-прежнему никаких следов файлов mysql.lua, init.lua, и вообще каталога libs, кроме как в PtokaX, нет.
mysql.so нашелся в php5
Добавлено: 19 июн 2010, 14:11
mariner
Странно. Должно лежать тут:
/usr/lib/lua/5.1/luasql/
Добавлено: 19 июн 2010, 14:20
TiGRpp
Там тоже лежит только mysql.so, а скрипт вроде просит еще mysql.lua и init.lua
Добавлено: 19 июн 2010, 14:44
mariner
хм, у меня их тоже нет, но все пашет
Добавлено: 19 июн 2010, 14:56
TiGRpp
Вообще библиотеки Птоха подхвалила, вижу, но есть ошибки скрипта.
Найдите строчку cd "$INSTALL_PATH" после нее добавьте строчку echo "$INSTALL_PATH" и посмотрите, что выведет при запуске.
Попробуйте первую строчку заменить с #!/bin/sh на #!/bin/bash
Ну или попробуйте INSTALL_PATH=$(dirname "$(readlink -f $0)") заменить на полный путь, например INSTALL_PATH="$HOME/ptokax-100131-i686"
Добавлено: 22 окт 2010, 00:54
mariner
так убанта же тут на 64 бита. А у нд под 32 бита сборка) Не звлетит) PS ia32-libs - шлак
Добавлено: 22 окт 2010, 14:57
nd
Ну почему же не взлетит? Про ia32 вы, вроде, знаете.
mariner писал(а):ia32-libs - шлак
Не забудьте об этом сообщить разработчикам.
В любом случае тут проблема в скрипте, а не бинарнике.
Добавлено: 24 окт 2010, 10:00
mariner
Не забудьте об этом сообщить разработчикам.
Не боись, я уже.
ну зачем плодить костылики?
Добавлено: 24 окт 2010, 12:01
exC0tic
Хм, попробовал на Ubunt-е скомпилировать сам, хаб так и не запустился, просто 0 внимания. В итоге снёс это дерьмо и поставил cent, теперь всё работает.
Добавлено: 24 окт 2010, 12:25
mariner
CentOS? Как дела с lua-socket, не падают? Lua-md5 через yum поставил, да?
Добавлено: 26 окт 2010, 13:22
exC0tic
Ну за 2 дня хаб упал 2 раза, и то ночью, и то как я понял из-за того что были проблемы с сетью, да
Добавлено: 26 окт 2010, 14:58
mariner
Кстати, таки интересует. А чо при сборке на Ubuntu писало?
Добавлено: 26 окт 2010, 19:23
exC0tic
segment failed или что-то такое), когда залезает не в свою память
Добавлено: 26 окт 2010, 23:09
mariner
странно) А из чего собирал то?) Ну оригинальные сурцы или как?