• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Слетают значения Paramlist внутри Property Set ( Paramlist )

  • Автор темы turumbay
  • Дата начала
T

turumbay

при использовании New справа от присваивания:
Код:
	Set treasureIsland.person( \"Сквайр Трелони\" ) =	New TPersonInfo( \"Туп, жаден, прожорлив, ленив, труслив, надменен. Богат. Характер отсутствует. Не женат.\")
Код нормално компилируется, новый объект создается и передается в тело Property. Упс приходит неожиданно: слетают значения параметров проперти. При этом иногда ложится клиент. В данном примере теряется \"Сквайр Трелони\". Если объект предварительно создать - присвоение отрабатывает корректно.
Проверено в 7.01, 7.03, 8.5
Код:
Private Class TPersonInfo
Private t_info As String
Sub New( i_info As String )
t_info = i_info
End Sub
End Class
Private Class TBook
Private t_person List As TPersonInfo
Sub New()
End Sub
Public Property Set person( i_name As String ) As TPersonInfo
Set t_person( i_name ) = person
End Property
End Class

Sub Initialize
Dim treasureIsland As New TBook
Dim billy As New TPersonInfo( \"Обладатель карты Острова Сокровищ. Много пьёт и всегда простужен. Характер скверный. Не женат.\" )
Set treasureIsland.person( \"Билли Бонс\" ) = billy

\' следующая строка работает некорректно:
Set treasureIsland.person( \"Доктор Ливси\" ) = New TPersonInfo( \"Очень хороший и весёлый человек. Характер общительный. Не женат.\")
End Sub
Вот такие вот грабли...
 
A

Akupaka

R 6.5.4 тоже баг... забавно... это баг работы с памятью, когда объект передается через "временную переменную"-параметр функции (забыл как это называется правильно)...

придется юзать так:
Код:
Sub Initialize
Dim treasureIsland As New TBook
Dim billy As New TPersonInfo( "Обладатель карты Острова Сокровищ. Много пьёт и всегда простужен. Характер скверный. Не женат." )
Set treasureIsland.person( "Билли Бонс" ) = billy
' следующая строка работает некорректно:
Set billy = New TPersonInfo( "Очень хороший и весёлый человек. Характер общительный. Не женат." )
Set treasureIsland.person( "Доктор Ливси" ) = billy
End Sub
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!