LINUX.ORG.RU
ФорумTalks

goto fail

 , ,


0

1

https://www.imperialviolet.org/2014/02/22/applebug.html

Ъ:

static OSStatus
SSLVerifySignedServerKeyExchange(SSLContext *ctx, bool isRsa, SSLBuffer signedParams,
                                 uint8_t *signature, UInt16 signatureLen)
{
	OSStatus        err;
	...

	if ((err = SSLHashSHA1.update(&hashCtx, &serverRandom)) != 0)
		goto fail;
	if ((err = SSLHashSHA1.update(&hashCtx, &signedParams)) != 0)
		goto fail;
		goto fail;
	if ((err = SSLHashSHA1.final(&hashCtx, &hashOut)) != 0)
		goto fail;
	...

fail:
	SSLFreeBuffer(&signedHashes);
	SSLFreeBuffer(&hashCtx);
	return err;
}
ЛОРовец, а ты тоже пишешь if без скобок, как последний содомит?

★★★★★

Последнее исправление: Suntechnic (всего исправлений: 2)
Ответ на: комментарий от Lavos

Затем, что goto используют только наркоманы, Линус и прочие поехавшие.

так скажи об этом в lkml

der_looser ★★
()

Всегда пишу со скобками. Но в чужом коде часто встречаю без них - бесит.

kovrik ★★★★★
()
Ответ на: комментарий от Suntechnic

А мне такой стиль нравится, сразу видно где блок начинается.

LongLiveUbuntu ★★★★★
()
Ответ на: комментарий от anonymous_sapiens

то ли дело у нас приколы после ведроапдейтов - отправил ноут спать - не проснулся.

Зато всегда есть возможность пофиксить, при наличии навыков. В макоси с такими багами остается только мириться и ждать апдейтов.

drakmail ★★★★
()
Ответ на: комментарий от Lavos

Затем, что goto используют только наркоманы, Линус и прочие поехавшие.

Вообще-то банального автоформатирования в IDE было бы достаточно, чтобы увидеть косяк. Но герои ведь все используют vim!

quiet_readonly ★★★★
()

Ну вот, а мне втирали, что никаких проблем и вообще у них всё работает тут же на ЛОРе. А оно вон как :}

Deleted
()

Товагисч, у вас обострённое чувство гомосегсуализма, почём вы в чужих исходниках копаетесь, аки фетишист противный?

iamsoaw
()

кстати, раз уж такая пьянка. считают ли местные (особенно несогласные с TC) допустимым писать if в одну строку в таких случаях, например:

if (x == 5)  ax = 4  + x;
if (ax == 9) x  = ax - 5;
то есть друг за другом, без пустых строк между и с выравниванием?

u283
()

ЛОРовец, а ты тоже пишешь if без скобок, как последний содомит?

Почти никогда не пишу if без скобок. А то вдруг придётся что-то добавлять?

CYB3R ★★★★★
()

Это не баг, это бэкдор для MitM

xorik ★★★★★
()
Ответ на: комментарий от Lavos

Наркоманы не используют goto там, где это логичнее и читаемей, а вместо этого городят конструкции из условий.

gadfly ★★
()

это красиво написанный и понятный код.

x0r ★★★★★
()
Ответ на: комментарий от Ramen

Язык тебя не заставляет использовать именно эту конструкцию. И более того — perlcritic ругается на эту конструкцию (PBP ее тоже не любит).

И любом случае — с такой конструкцией не выйдет сделать фейл как в шапке.

KennyMinigun ★★★★★
()
Последнее исправление: KennyMinigun (всего исправлений: 1)
Ответ на: комментарий от segfault

Почему? Обоснуй. Я тоже стараюсь так не делать, но у меня нет объективной причины. К тому же я иногда делаю так:

set x [set y [set z 0]]

Suntechnic ★★★★★
() автор топика
Ответ на: комментарий от KennyMinigun

Тем не менее одной из главных проблем перла является как раз таки обилие возможностей писать говнокод.

Ramen ★★★★
()
Ответ на: комментарий от Suntechnic

Не читабельно. Как и цепочное присвоение.

segfault ★★★★★
()
Ответ на: комментарий от Lavos

Я всё починил, куда слать патч?

А ты уверен, что компилятор не скомпилирует первым SSLHashSHA1.final а потом оба SSLHashSHA1.update?

andrewzvn
()
Ответ на: комментарий от Lavos

А зачем ему делать это в обратном порядке?

Операции равнозначные и компилятору пофиг в какой очередности компилировать, тем более что в дело вступает 100500 оптимизаций.

andrewzvn
()
Ответ на: комментарий от Lavos

Какой странный компилятор

Обычная практика - вычислить самое простое условие, и если оно неправильное - на остальные забить.

andrewzvn
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.