🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.objects
Article #16864

Re: Groovy

#16864
From: Piotr Kobzda
Date: Wed, 16 May 2007 20:38
54 lines
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-mail
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>

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