기본 콘텐츠로 건너뛰기

글

Template with #pragma pack bug

일반적으로 C/C++컴파일러는 메모리 퍼포먼스를 위해 구조체 멤버를 새로 순서를 정렬하거나 4바이트 단위로 패딩을 한다. 대부분의 컴파일러는 순서는 바꾸지 않고, 전체크기를 4바이트 단위로 패딩을 하는데, 일반상황에서는 크게 문제를 야기 하지 않는다. 그러나 File이나 Network에서 쓰일 고정길이 레코드 개념으로 쓰다보면 4바이트 단위 패딩은 매우 위험하다. 따라서 컴파일러마다 지시자를 두어 1바이트 단위로 패딩할 수 있게 하였다. GCC는 __attribute__((__packed__)) 지시어를 이용하지만 GCC에만 적용하는 것이고, 일반적으로 VC에서 사용하던 지시자인 #pragma pack을 사용한다. 사용법은 아래와 같다. #pragma pack(push, 1) // ... definition ... #pragma pack(pop) 또는 #pragma pack(1) // ... definition ... #pragma pack() 그런데 이러한 Data structure alignment가 Template과 결합하면 심각한 버그를 만들어낸다. * 2002년에 보고한 내용인데, 2009년에 수정한 GNU GCC팀의 패기에 박수를 보낸다. (응?) #include using namespace std; #pragma pack(1) template<typename _T> struct mystr_t { _T otype; int i; }; #pragma pack() #pragma pack(1) struct inner_t { char c[3]; }; #pragma pack() int main(int argc, char* argv[]) { cout << "sizeof(inner_t): " << sizeof(inner_t) << endl; mystr_t<inner_t> tmp; cout << "sizeof(tmp): " << si...

pinterest를 이용한 악성코드 유포 가능성

테스트용으로 가입한 pinterest로 한 외국인이 follow를 신청하였다. 궁금해서 클릭했는데, 핀보드만 184개인데, 각 핀보드마다 핀이 하나씩 밖에 없다. 혹시나 하고 핀 하나를 선택해봤다. 올~ㅋ 멋진데. 어디서 가져온거지? 다시 클릭! 두둥! 악의적인 URL이란다. 혹시나 다른 핀을 선택했더니 모두 동일한 URL로 자동으로 이동(redirect)하고 있었다. 더 조사하진 않았지만, pinterest를 통해 이러한 악성코드 유포가 가능하니, 조심하도록 하자. 또한 발견 즉시, KISA( http://kisa.or.kr )로 꼭꼭 신고하자. 원본 위치: http://purewell.egloos.com/5102091

네이트온 UC 2.0 개봉기

* 주의! 이 리뷰는 귀차니즘이 눈에 보이며, 스크롤 압박이 매우 심하니, 심약한 노약자, 임산부 등은 다른 웹서핑 하길 간곡히 요청하는 바이다. * 써놓고 보니, 겁나 오글거려... 오글오글... 우여 곡절 끝에 네이트온이 쌍둥이 네이트온톡을 제끼고 2.0 버전이 나왔다. 아직 아이폰 버전은 나오지 않았지만, 안드로이드 버전은 구글 플레이(마켓)와 Tstore를 통해 받을 수 있다. 구글 플레이:  https://play.google.com/store/apps/details?id=Uxpp.UC Tstore:  http://www.tstore.co.kr/userpoc/game/viewProduct.omp?insDpCatNo=DP03004&insProdId=0000034344&prodGrdCd=PD004401&t_top=DP000503 나는 구글빠니까 구글 플레이에서 찾아보았다. 사실 기존 버전에서 가장 큰 문제점으로 지적한 강제종료. Android의 OOM killer가 메모리가 부족하다 싶으면 백그라운드에 돌고 있던 앱들을 학살하기 시작하는데, 기존 버전이 그것 덕에 잘 죽었고, 로그인 하니라 시간을 허비하였다. 그것을 고쳤다고 하니 후딱 설치해보자. 초딩 같은 바탕화면은 가볍게 무시하자. 그나저나 네이트온 아이콘이 마작패 같은 느낌은 나뿐일까? 우어어어어어!!!!! 우리 아이... 아니, 네이트온이 달라졌어요!!!!! 아래 점이 있는 것으로 보아 다음 페이지로 슥슥 넘기면 다른 설명이 나올 것 같지만, 귀찮아서 그냥 바로 로그인 클릭클릭!!! 적당히 아이디와 암호를 입력하고 로그인 버튼을 눌러보자. @nate.com 아이디만 받는게 아니라서 도메인부분을 누르면 자주 쓰이는 포털 도메인과 직접입력을 통해 사용하던 커스텀 도메인을 입력할 수 있다. 나 역시 커스텀으로... ㅇㅇ 무선 네트워크 쓴다는거군. 당연한 멘트. 똥글뺑이가 얼마나 도나 보자...하고 스샷 찍자마자... 오호호호호 근데 이건 뭐냐? 휴대폰 인증 받으라는...