- 1
- 2
- 3
- 4
$value = $this->model->getById(DataUtil::fromGET("id"));
foreach($this->model->get(PaginationUtil::getStart(),PaginationUtil::$countOnPage) as $value){
return NewsUtils::createNewsLayout_ND($value);
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+154
$value = $this->model->getById(DataUtil::fromGET("id"));
foreach($this->model->get(PaginationUtil::getStart(),PaginationUtil::$countOnPage) as $value){
return NewsUtils::createNewsLayout_ND($value);
}
В проект был взят стажер, и начал появляться такой вот индусский код.
+139
#include <cstdio>
#include <malloc.h>
int number;
printf("Int to c_str convertation whith separator: ");
do {
printf("Enter a number (int): ");
}
while (!scanf ("%d",&number));
bool negative = number<0;
number=abs(number);
char* reversed = (char*)(malloc(sizeof(char)));
*reversed = 0;
int divider=1;
unsigned char i=3;
int buf;
int val = 0;
int size=1;
forever{
buf=number%(divider*10);
i--;
size++;
reversed = (char*)(realloc(reversed,size*sizeof(*reversed)));
*(reversed+size*sizeof(*reversed)-1) = (buf-val)/divider+48;
divider*=10;
val=buf;
if (!i){
size++;
reversed = (char*)(realloc(reversed,size*sizeof(*reversed)));
*(reversed+size*sizeof(*reversed)-1)=32;
i=3;
}
if (buf==number) {break;}
}
if (negative){
size++;
reversed = (char*)(realloc(reversed,size*sizeof(*reversed)));
*(reversed+size*sizeof(*reversed)-1)='-';
}
char* output = (char*)(malloc(size*sizeof(*reversed)));
for (i=0;i<size*sizeof(*reversed);i++){
*(output+i) = *(reversed+size*sizeof(*reversed)-((1+i)*sizeof(*reversed)));
}
printf("Number as char* is: %s",output);
Выводит число в строку, вставляя пробел после каждых 3-х цифр.
+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
Искал баги в борландовском компиляторе. Нашел немало забавных моментов, три выкладываю.
+146
File tarFile = new File(UUID.randomUUID() + ".tar");
tarFile.createNewFile();
FileOutputStream tarFileOutputStream = new FileOutputStream(tarFile.getAbsolutePath());
TarArchiveOutputStream archiveOutputStream = new TarArchiveOutputStream(tarFileOutputStream);
String entryName = "пример.txt";
File fileToPack = new File("C:\\пример.txt");
InputStream in = new FileInputStream(fileToPack);
//создаем запись в архиве с русским названием
TarArchiveEntry entry = new TarArchiveEntry(entryName);
entry.setSize(in.available());
archiveOutputStream.putArchiveEntry(entry);
while (in.available() > 10 * 1024 * 1024) {
byte b[] = new byte[10 * 1024 * 1024];
in.read(b);
archiveOutputStream.write(b, 0, b.length);
}
byte b[] = new byte[in.available()];
in.read(b);
archiveOutputStream.write(b, 0, b.length);
in.close();
archiveOutputStream.flush();
archiveOutputStream.closeArchiveEntry();
archiveOutputStream.flush();
archiveOutputStream.close();
найдено в сети.
+154
Insert into reading_count_pages (page_id, reading_count) values (973, 1)
Любителям простых SQL-инъекций:
Сайт одного университета: http://impuls.vntu.edu.ua/, писали, видимо, студенты должники.
На разных страницах сайта можно наблюдать MySQL ерроры, подставляя данные в GET-запрос. Так же, по запросам можно судить о качестве проектирования сайта.
Пример (http://impuls.vntu.edu.ua/?news_id=973%60):
Insert into reading_count_pages (page_id, reading_count) values (973, 1), потом выполняется group by по айдишке и считается каунт. Еще пример: http://impuls.vntu.edu.ua/?all&t=50000&f=0
+158
<?if ((eregi('?:(?:\r\n)?[ \t])*(?:(?:(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*))*@(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*|(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*)*\<(?:(?:\r\n)?[ \t])*(?:@(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*(?:,@(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*)*:(?:(?:\r\n)?[ \t])*)?(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*))*@(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*)(?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]|\\.)*\](?:(?:\r\n)?[ \t])*))*\>(?:(?:\r\n)?[ \t])*)|(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*)*:(?:(?:\r\n)?[ \t])*(?:(?:(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*))*@(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|\[([^\[\]\r\\]?:\.(?:(?:\r\n)?[ \t])*(?:[^()<>@,;:\\".\[\] \000-\031]+(?:(?:(?:\r\n)?[ \t])+|\Z|(?=[\["()<>@,;:\\".\[\]]))|"(?:[^\"\r\\]|\\.|(?:(?:\r\n)?[ \t]))*"(?:(?:\r\n)?[ \t])*))*@(?:(?:\r\n)?[ \t])**',$_POST['admin_mail']))){echo'Ошибка в адресе почты';} ?>
Пооверка на валидность e-mail
+142
case 43: /* + */
sum_up += sum_up > 1 ? 0 : 1;
return 1;
case 45: /* - */
sum_up -= sum_up < 1 ? 0 : 1;
return 1;
Если выше/ниже лимита то добавляем/отнимаем ничего.
ЗЫ sum_up это переменная контролирующая уровень вербозности (0,1,2) специальной мониторной проги. кнопками +/- можно интерактивно контролировать. К слову, сверху это уже правленый код. Оригинальный оригинал:
if (c == 43) { sum_up = sum_up > 1 ? sum_up : ++sum_up; return 1; }
if (c == 45) { sum_up = sum_up < 1 ? sum_up : --sum_up; return 1; }
+147
if(entry.getName().equals("back.jpg"));{
}
просто смешная (но с последствиями) опечатка
+78
if (searchFB.getOrderNo()!=null && searchFB.getOrderNo().length()==6){
int drawingStatus = searchFB.getDrawingStatus();
int criticalStatus = searchFB.getCriticalStatus();
int blockingStatus = searchFB.getBlockingStatus();
int suspensionStatus = searchFB.getSuspensionStatus();
searchFB.setDrawingStatus(drawingStatus);
searchFB.setCriticalStatus(criticalStatus);
searchFB.setBlockingStatus(blockingStatus);
searchFB.setSuspensionStatus(suspensionStatus);
}
И это мне поддерживать...
−108
+ (NSUInteger)tagExpensiveCandyAnimationInteger:(NSUInteger)tagSprite
{
NSUInteger animationTag;
if(tagSprite == 2001)
{
animationTag = 2101;
}
else if(tagSprite == 2002)
{
animationTag = 2102;
}
else if(tagSprite == 2003)
{
animationTag = 2103;
}
else if(tagSprite == 2004)
{
animationTag = 2104;
}
else if(tagSprite == 2005)
{
animationTag = 2105;
}
else if(tagSprite == 2006)
{
animationTag = 2106;
}
else if(tagSprite == 2007)
{
animationTag = 2107;
}
else if(tagSprite == 2008)
{
animationTag = 2108;
}
else if(tagSprite == 2009)
{
animationTag = 2109;
}
else if(tagSprite == 2010)
{
animationTag = 2110;
}
else if(tagSprite == 2011)
{
animationTag = 2111;
}
else if(tagSprite == 2012)
{
animationTag = 2112;
}
return animationTag;
}
Того же автора:)