Article View: pl.comp.objects
Article #16864Re: Groovy
From: Piotr Kobzda
Date: Wed, 16 May 2007 20:38
Date: Wed, 16 May 2007 20:38
54 lines
3828 bytes
3828 bytes
Seweryn Habdank-Wojewódzki wrote: > a ty dajesz: > > #define private public > memset(&klasa.pimpl_,0,sizeof(shared_ptr<Pimpl>)); Albo memcpy z jednego egzemplarza do drugiego... > Tylko, że to nie chodzi o bezpieczeństwo, bo memset kasujesz fragment > pamięci. I to się skończy różnego rodzaju NullPointerException. Niekoniecznie NPE (jak wskazałem wyżej), a nawet jeśli NPE, to niekoniecznie tam, gdzie mógłbyś się go spodziewać, itp. itd. (wliczając radosne powroty do domu o poranku... po dwóch, trzech nieprzespanych nocach... ja już dziękuję...) Rzeczony wcześniej String np. jest w Javie immutable, nie dlatego, że implementujący go zaufali dobrej woli programistów, ale dlatego, że ma _zabezpieczone_ wnętrze. Wiesz co mógłby zrobić servlet na dużym serversze, gdyby takiej gwarancji nie było? Zagrozić mógłby potencjalnie nie sobie, ale wszystkim hostowanym aplikacjom. Tymczasem, podobnie jak Stringa, nie boję się przekazać obcemu kodowi unmodifiableSet(), czy czegokolwiek chronionego dostępem, bez obawy, że coś się z tym niedobrego stanie, czy choćby i niechcący, zrobi mi ktoś coś złego "w środku"... > > Wydaje mi się, że nie o to chodzi w programowaniu i w bezpieczeństwie. Nie wiem o co chodzi w programowaniu. To jednak o czym mówimy, to _bezpieczeństwo_, jakkolwiek Ty byś na to nie patrzył. Oczywiście, bezpieczeństwo nie na tym się kończy, tu dopiero tak naprawdę się zaczyna (o czym we wskazanych wcześniej papierach też sporo jest...). Bez tego jednak, nie ma sensu iść dalej... > Tymbardziej że w C++ np. załadowany moduł dynamicznie nie ma dostępu do > programu głównego, więc jeśli ktoś Ci podeśle jakiś syf to wywali tylko > swój program. Na windowsach sie nie znam, ale UNIX'y nie pozwalają na > babranie ot tak sopie po pamięci, więc np. kasowanie pamięci na oślep też > nie pójdzie. Żaden ze znanych mi systemów na taką swobodę nie pozwala. Tu mówimy jednak o dość precyzyjnych zabiegach, które na poziomie C++ są możliwe. Na poziomie platformy Javy (oczywiście, nie tylko) nie. piotr
Technical Details
Message-ID:
<f2fq3r$ifq$1@inews.gazeta.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!mat.uni.torun.pl!news.man.torun.pl!newsfeed.pionier.net.pl!news.gazeta.pl!not-for-mailReferences:
<f1tdl6$2s4$1@inews.gazeta.pl><f1todc$8s5$1@inews.gazeta.pl> <f1tss8$iq3$1@inews.gazeta.pl> <f1u2qu$1pm$1@inews.gazeta.pl> <1178922714.630317.141500@y80g2000hsf.googlegroups.com> <f22v79$3gu$1@inews.gazeta.pl> <f246sk$b8s$1@news.vectranet.pl> <f24i4s$6pe$1@inews.gazeta.pl> <f24s89$vs3$1@news.vectranet.pl> <f24u05$nnf$1@inews.gazeta.pl> <f24uor$39e$1@news.vectranet.pl> <f2586r$asf$1@inews.gazeta.pl> <f26fc9$iu6$1@news.vectranet.pl> <f287ie$354$1@inews.gazeta.pl> <f298ag$b63$1@news.vectranet.pl> <f29mdl$m5f$1@inews.gazeta.pl> <f2aa6n$cp8$1@news.vectranet.pl> <f2ad64$auv$1@inews.gazeta.pl> <f2afqc$i98$1@news.vectranet.pl> <f2ahqh$6n8$1@inews.gazeta.pl> <f2ara9$dj2$1@inews.gazeta.pl> <f2at2s$tu6$1@news.vectranet.pl> <f2au65$lsi$1@inews.gazeta.pl> <f2f094$s7p$2@inews.gazeta.pl> <f2fhdn$mq3$1@news.vectranet.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!mat.uni.torun.pl!news.man.torun.pl!newsfeed.pionier.net.pl!news.gazeta.pl!not-for-mail From: Piotr Kobzda <pikob@gazeta.pl> Newsgroups: pl.comp.objects Subject: Re: Groovy Date: Wed, 16 May 2007 22:38:19 +0200 Organization: "Portal Gazeta.pl -> http://www.gazeta.pl" Lines: 54 Message-ID: <f2fq3r$ifq$1@inews.gazeta.pl> References: <f1tdl6$2s4$1@inews.gazeta.pl><f1todc$8s5$1@inews.gazeta.pl> <f1tss8$iq3$1@inews.gazeta.pl> <f1u2qu$1pm$1@inews.gazeta.pl> <1178922714.630317.141500@y80g2000hsf.googlegroups.com> <f22v79$3gu$1@inews.gazeta.pl> <f246sk$b8s$1@news.vectranet.pl> <f24i4s$6pe$1@inews.gazeta.pl> <f24s89$vs3$1@news.vectranet.pl> <f24u05$nnf$1@inews.gazeta.pl> <f24uor$39e$1@news.vectranet.pl> <f2586r$asf$1@inews.gazeta.pl> <f26fc9$iu6$1@news.vectranet.pl> <f287ie$354$1@inews.gazeta.pl> <f298ag$b63$1@news.vectranet.pl> <f29mdl$m5f$1@inews.gazeta.pl> <f2aa6n$cp8$1@news.vectranet.pl> <f2ad64$auv$1@inews.gazeta.pl> <f2afqc$i98$1@news.vectranet.pl> <f2ahqh$6n8$1@inews.gazeta.pl> <f2ara9$dj2$1@inews.gazeta.pl> <f2at2s$tu6$1@news.vectranet.pl> <f2au65$lsi$1@inews.gazeta.pl> <f2f094$s7p$2@inews.gazeta.pl> <f2fhdn$mq3$1@news.vectranet.pl> NNTP-Posting-Host: xdsl-2843.zgora.dialog.net.pl Mime-Version: 1.0 X-Trace: inews.gazeta.pl 1179347899 18938 81.168.239.27 (16 May 2007 20:38:19 GMT) X-Complaints-To: usenet@agora.pl NNTP-Posting-Date: Wed, 16 May 2007 20:38:19 +0000 (UTC) X-User: pikob In-Reply-To: <f2fhdn$mq3$1@news.vectranet.pl> User-Agent: Thunderbird 1.5.0.10 (Windows/20070221) Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit