- 1
- 2
- 3
- 4
- 5
- 6
- 7
if ($flag == false) {
# на всякий случай
if (false == true) exit;
include «execute.php»;
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+165
if ($flag == false) {
# на всякий случай
if (false == true) exit;
include «execute.php»;
}
На просторах инета... Какой ещё ВСЯКИЙ СЛУЧАЙ?
+164
function ubiyca() {
function pasha() {
// убийца паша
dead('машу'); // паша убивает машу
function masha() {
//убийца маша
dead('пашу'); // маша убивает пашу
}
}
function dead_ pasha_and_masha() {
//убиваем пашу и машу
dead('и пашу и машу');
}
}
Код знакомого, который пытается реализовать могилки на сайте.
function dead_ pasha_and_masha() {
//убиваем пашу и машу
dead('и пашу и машу');
}
Получается, что паша и маша убивает пашу и машу? оО
+166
// say this is some existing structure. And we want to use
// a list. We can tell it that the next pointer
// is apple::next.
struct apple {
int data;
apple * next;
};
// simple example of a minimal intrusive list. Could specify the
// member pointer as template argument too, if we wanted:
// template<typename E, E *E::*next_ptr>
template<typename E>
struct List {
List(E *E::*next_ptr):head(0), next_ptr(next_ptr) { }
void add(E &e) {
// access its next pointer by the member pointer
e.*next_ptr = head;
head = &e;
}
E * head;
E *E::*next_ptr;
};
int main() {
List<apple> lst(&apple::next);
apple a;
lst.add(a);
}
c++ страшный язык :) (часть вторая)
C++: Pointer to class data member: http://stackoverflow.com/questions/670734/c-pointer-to-class-data-member
Такие конструкции "E *E::*next_ptr;" без подготовки не осилить.
+180
; -------- мув в AX опкода команды UD2 --------
CODE:004051B0 mov al, 0Bh
CODE:004051B2 mov ah, 0Fh
CODE:004051B4 xchg al, ah
CODE:004051B6 push eax ; save opcode
CODE:004051B7 call sub_40A1E5
; -------- вис для отладки --------
; если зависли, то найден дубликат (жестко, но надежно :D )
CODE:0041C676 call hash_FindWord
CODE:0041C67B @@dbllock:
CODE:0041C67B jnc @@dbllock ; <- если хэш найден, то висим
; -------- ну и искомый баг --------
; неправильный цикл поиска последнего элемента списка
CODE:00401698 proc sub_401698
CODE:00401698 mov ecx, [dword_42944C]
CODE:0040169E jecxz loc_4016AA
CODE:004016A0 loc_4016A0:
CODE:004016A0 mov ecx, [ecx] ; ecx = next block
CODE:004016A2 and ecx, ecx
CODE:004016A4 jnz loc_4016A0
CODE:004016A6 mov eax, [ecx+8] ; <-- bag: ECX = 0
CODE:004016A9 retn
CODE:004016AA loc_4016AA:
CODE:004016AA mov eax, [dword_42A58E]
CODE:004016AF retn
CODE:004016AF endp
Искал баги в борландовском компиляторе. Нашел немало забавных моментов, три выкладываю.
+164
template < int Order, typename T >
struct PrefixSum {
static inline void update ( T* a ) throw () { *a += *(a-1); PrefixSum < Order-1, T > :: update( a+1 ); }
};
template < typename T >
struct PrefixSum < 1,T > {
static inline void update ( T* a ) throw () { *a += *(a-1); }
};
template < int P, int N, int Condition = 0 >
struct Bpn {
enum { value = N * ( Bpn < P-1, N-1, (N > P) > :: value - Bpn < P-1, N, (N > P-1) > :: value ) };
};
template < int P, int N > struct Bpn < P, N, !0 > { enum { value = 0 }; };
template < int P > struct Bpn < P, 0, 0 > { enum { value = P ? 0 : 1 }; };
template < int P > struct Bpn < P, 1, 0 > { enum { value = P & 1 ? 1 : -1 }; };
template < typename Ta, typename Tb, bool C > struct IfThenElse;
template < typename Ta, typename Tb > struct IfThenElse < Ta, Tb, true > { typedef Ta TRes; };
template < typename Ta, typename Tb > struct IfThenElse < Ta, Tb, false > { typedef Tb TRes; };
template < int K, int I = 1 >
struct MomentSeries {
typedef typename IfThenElse < MomentSeries<K,I+1>, MomentSeries<K,K>, (I<K) >::TRes SubT;
static inline double accumulate ( double const* psum ) throw () {
return Bpn < K, I > :: value * psum [ I + 1 ] + SubT :: accumulate ( psum );
}
};
template < int K >
struct MomentSeries < K, K > {
static inline double accumulate ( double const* psum ) throw () {
return Bpn < K, K > :: value * psum [ K + 1 ];
}
};
template < int Order >
struct MomentLoop {
static inline void assign ( double *moments, size_t momentStride, double const* psum ) throw() {
*(moments - momentStride) = MomentSeries < Order-1 > :: accumulate ( psum );
MomentLoopAssign < Order-1 > :: assign ( moments - momentStride, momentStride, psum );
}
};
template <>
struct MomentLoop < 1 > {
static inline void assign ( double *moments, size_t momentStride, double const* psum ) throw() {
moments [ 0 ] = MomentSeries < 1, 1 > :: accumulate ( psum );
*(moments - momentStride) = psum [ 1 ];
}
};
/**
* Function computes a series of geometric moments by prefix summation method:
* Zhou F., Kornerup P. Computing Moments by Prefix Sums. // VLSI Signal Proc. - 2000. - 25. - P. 5 - 17.
* @param data is first data elemet address.
* @param ndataItems is number of data items.
* @param dataStride is the number of elements between two neighbor data items,
* in case of simple array dataStride is equal to 1.
* @param moments is address of 0-order moment.
* @param momentStride is number of elements between two neigbor moment items,
* in case of consequtive moments placement, momentStride is equal to 1.
*/
template < int Order, class OutPolicy >
inline void psmoment ( double const* data,
size_t const ndataItems,
size_t const dataStride,
double* moments,
size_t const momentStride ) throw() {
double psum [ Order+1 ] = { 0 };
// Initialize prefix sum
for ( size_t i = ndataItems, j = ndataItems * dataStride; i; ) {
--i; j -= dataStride; psum [ 0 ] = data [ j ];
PrefixSum < Order, double > :: update ( psum+1 );
}
// convert psum to moment values
OutPolicy :: assign ( moments + Order * momentStride, momentStride, psum );
}
Вы - тестовая площадка, перед написанием статьи в пфп ;)
+122
switch (item.Value.ModuleConfiguration.SystemModule) // у свойства SystemModule тип bool, а не bool?
{
case true:
{
CreateModuleDomain<ISystemModuleProxy>(moduleContainer);
(moduleContainer.ModuleProxy as ISystemModuleProxy).Init(moduleContainer.ModuleConfiguration, this as ISystemCoreProvider);
break;
}
case false:
{
CreateModuleDomain<IBusinessModuleProxy>(moduleContainer);
(moduleContainer.ModuleProxy as IBusinessModuleProxy).Init(moduleContainer.ModuleConfiguration, this as ICoreProvider);
break;
}
default:
break;
}
Фрагмент кода официального Senior Developer. Пример абсолютно надежного кода, который умеет обрабатывать даже будущие состояния булевого типа (default: break;) Будет надежен даже, если Microsoft неожиданно расширит тип состояниями, например MayBeTrue, OfCourseFalse, DontUnderstand и т.п. :)
+166
class r{
r(const r&);
r& operator=(const r&);
public:
r(){}
template<class t>
r& operator,(t *v){
return this->operator<<(*v);
}
template<class t>
r& operator<<(t &o){
crash_if_fail(dynamic_cast<const void*>(&o));
int l = 0;
int n = 0, n_ = sizeof(o) / sizeof(void*);
while (n < n_){
void **a = *((void***)&o + n++);
if (IsBadReadPtr(a, sizeof(void*)) || is_stack(a)){
continue;
}
int c = 0;
void *d = a[c];
while (is_code_segment__(d)){
print_info(&l, o, n, d, c, a);
d = a[++c];
}
}
return *this;
}
template<class t>
void print_info(int *l, const t &o, int n, void *d, int c, void **a){
if (!*l){
puts("///////////////////////////////////////////////////");
printf("object address %p\n", &o);
*l = 1;
}
if (!c){
puts("-=-=-=-=-=-=-=-=-=-");
printf("%15.1s%p:__vfptr %p\n", "+", ((char*)((void***)&o + n - 1)) - (char*)&o, a);
}
printf("%32.p\n", d);
}
};
+162
<?php
if(isset($_GET['pid'])){
$pid = $_GET['pid'];
echo $pid;
$szi=iconv_strlen($pid);
if(file_exists("./$pid.txt")){
$fc=fopen("$pid.txt","r");
if($fc<0)exit(0);
fseek($fc,0,0);
$url = fread($fc,filesize("./$pid.txt"));
fclose($fc);
header('Location: '.$url);
} else {
echo "File not exist<br>";
};
};
$idx=0;
$fc=fopen("index.txt","r");
if($fc<0)exit(0);
$idx = fread($fc,filesize("index.txt"));
fclose($fc);
$fc=fopen("./$idx.txt","r");
if($fc<0)exit(0);
$url = fread($fc,filesize("./$idx.txt"));
fclose($fc);
echo "<a href=\"http://netelis.hmsite.net/index.php?pid=$idx\">$url</a>";
if(isset($_POST['url'])){
$url=$_POST['url'];
if (parse_url($url)) {
echo "Your url is ok.";
for($i=0;$i<=$idx;$i+=2){
$fc=fopen("$i.txt","r");
if($fc<0)exit(0);
$urla = fread($fc,filesize("$i.txt"));
fclose($fc);
// echo "$urla<br>";
if(strcmp($url,$urla)==0){
echo "<a href=\"http://netelis.hmsite.net/index.php?pid=$i\">http://netelis.hmsite.net/index.php?pid=$i</a>";
exit(0);
};
};
} else {
echo "Wrong url.$url";
exit(0);
}
$sz=iconv_strlen($idx);
$idx+=2;
$fn=$idx.".txt";
$fd=fopen($fn,"a+");
if($fd<0)exit(0);
fwrite($fd,$url);
fclose($fd);
unlink("./index.txt");
$fd2=fopen("index.txt","a+");
if($fd2<0)exit(0);
fwrite($fd2,$idx);
fclose($fd2);
echo "<a href=\"http://netelis.hmsite.net/index.php?pid=$idx\">http://netelis.hmsite.net/index.php?pid=$idx</a>";
};
?>
<H1> Short URL generator</H1>
<form action="" method="POST" name="ifr">
Enter URL:
<input type=text name="url" value="http://">
<br>
<input type=submit name="sbm" value="OK">
</form>
Скрипт с сайта
+159
//Aios (17:12:13 3/04/2011)
//Не то что ты накалякал никуда не годицца! Переделывай
//bukvi (17:13:00 3/04/2011)
//может тогда так?
function timing($time)
{
$_TIME = $time;
//тут код по умнее потому и опущу его
}
$time = time();
timing($time);
//Aios (17:14:22 3/04/2011)
//*ROFL* - пиздец....
Передача показателя суперглобальной функции как параметра!
+164
$update = !empty($id) and $id > 0;
Вопреки ожиданиям автора, выражение $id > 0 вообще никогда не принимается во внимание.
/* Ознакомьтесь с приоритетом операций */
Сначала отработает $update = !empty($id)
потом значение из $update будет сравниваться с $id > 0 и результат сравнения никуда не попадёт.
Рекомендация: используйте && вместо оператора "and".