- 1
- 2
if (cmd[1] == RESET) // если принятая команда RESET
{((void(*)(void))0)();} // что-то из черной магии
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+93.9
if (cmd[1] == RESET) // если принятая команда RESET
{((void(*)(void))0)();} // что-то из черной магии
Сломай себе голову!!!!
друг прислал, незнаю где накопал, но выглядит круто!
+131.2
static void module3_exit(void){
cdev_del(mydev);
printk(KERN_INFO"Device"DEV_NAME"was deleted");
};
int mydev_open(struct inode *in,struct file *filp){
printk(KERN_INFO DEV_NAME "open");
struct dev_state *dev_stat;
dev_stat=&STATE[MINOR(in->i_rdev)];
if(dev_stat->dev_open)
{
printk("Kernel: device "DEV_NAME" is exist");
return -EBUSY;
};
dev_stat->dev_open++;
dev_stat->dev_read=0;
dev_stat->dev_write=0;
int num= NUM(in->i_rdev);
int type=TYPE(in->i_rdev);
return 0;
};
int mydev_ioctl(struct inode *in,struct file *filp,unsigned int ioctl,unsigned long param)
{
printk(KERN_INFO DEV_NAME "ioctl");
return 0;
};
ssize_t mydev_read(struct file *filp,char *buff,ssize_t len,loff_t pos)
{
printk(KERN_INFO DEV_NAME "read");
struct inode *in;
int count=len;
struct dev_state *devst;
printk("Kernel: try to read %d bytes \n",len);
in=filp->f_dentry->d_inode;
printk("Kernel: minor number is %d",MINOR(in->i_rdev));
devst=&STATE[MINOR(in->i_rdev)];
while(count--)
{
put_user(inb_p(PORT_START+10*MINOR(in->i_rdev)),buff);
buff++;
};
devst->dev_read+=len;
printk(KERN_INFO"Kernel: read "DEV_NAME" %d bytes",len);
return len;
};
ssize_t mydev_write(struct file *filp, const char *buff, ssize_t len,loff_t pos)
{
printk(KERN_INFO DEV_NAME "write");
struct inode *in;
int count=len;
unsigned char byte;
struct dev_state *devst;
printk(KERN_INFO"Kernel: try to write %d bytes\n",len);
in=filp->f_dentry->d_inode;
printk(KERN_INFO"Kernel: minor number %d\n",MINOR(in->i_rdev));
devst=&STATE[MINOR(in->i_rdev)];
while(count--)
{
get_user(byte, buff);
outb_p(byte, PORT_START+10*MINOR(in->i_rdev));
buff++;
};
devst->dev_write +=len;
printk(KERN_INFO"Kernel: "DEV_NAME " written %d bytes\n",len);
return len;
};
Модуль ядра
+128.8
#define MAX_FILE_LENGHT PAGE_SIZE
#define TYPE(dev) ( MINOR(dev) >> 4)
#define NUM(dev) ( MINOR(dev) & 0xf )
#define IRQ_NUM 1
#define DEV_NAME "keyboard"
#define MAX_DEV_COUNT 5
#define PORT_START 0xff30
int devno,err;
int mj,min;
struct cdev *mydev;
static char *devbuff;
struct dev_state{
int dev_open;
ssize_t dev_read;
ssize_t dev_write;
};
int mydev_ioctl(struct inode *in,struct file *filp,unsigned int ioctl,unsigned long param);
int mydev_open(struct inode *in,struct file* filp);
ssize_t mydev_read(struct file *filp,char *buff,ssize_t len,loff_t pos);
ssize_t mydev_write(struct file *filp, const char *buff, ssize_t len,loff_t pos);
loff_t mydev_llseek(struct file *filp,loff_t pos, int dist);
int mydev_close(struct inode *in , struct file *filp);
static struct dev_state STATE[MAX_DEV_COUNT+1];
struct resource *my_res;
struct file_operations fop_s={
.owner = THIS_MODULE,
.open = mydev_open,
.release = mydev_close,
.read = mydev_read,
.write = mydev_write,
.ioctl = mydev_ioctl,
.llseek = mydev_llseek,
};
static int module3_init(void){
mj=1;
min=1;
my_res->start=0xff30;
my_res->name="myres";
my_res->flags=IORESOURCE_IO | IORESOURCE_IO_FIXED;
my_res->parent=NULL;
my_res->sibling=NULL;
my_res->child=NULL;
struct resource *myres=request_region(200,300,"myreg");
devbuff=(char*)vmalloc(MAX_FILE_LENGHT);
memset(devbuff,0x20,sizeof(devbuff));
devno=MKDEV(mj,min);
mydev=cdev_alloc();
mydev->owner=THIS_MODULE;
cdev_init(mydev,&fop_s);
err=cdev_add(mydev,devno,1);
if(err){
printk(KERN_INFO"Invaid devno %d\n",devno);
return -EFAULT;
};
printk(KERN_INFO"Device"DEV_NAME"was created\n");
return 0;
};
+102.8
int parse_path(const char *path,char ***names,int *size)
{
int ch=0; ch='/';
*size=0;
char *q; q=path+1;
char *s=0;
while(1)
{
s=strchr(q,ch);
if(s!=NULL)
{
(*size)++;
if(*size==1)
{
(*names)=malloc(sizeof(char*)*(*size));
if(!(*names)) return -1;
}
else
{
(*names)=realloc(*names,(*size)*sizeof(char*));
if(!(*names)) return -1;
}
*(*names+(*size)-1)=malloc((s-q+1)*sizeof(char));
if(!(*(*names+(*size)-1))) return -1;
memset(*(*names+(*size)-1),0,(s-q+1)*sizeof(char));
strncpy(*(*names+(*size)-1),q,s-q);
q=s+1;
}
else
{
if(*q!='\0')
{
ch='\0';
s=strchr(q,ch);
(*size)++;
(*names)=realloc(*names,(*size)*sizeof(char*));
if(!(*names)) return -1;
*(*names+(*size)-1)=malloc((s-q+1)*sizeof(char));
if(!(*(*names+(*size)-1))) return -1;
memset(*(*names+(*size)-1),0,(s-q+1)*sizeof(char));
strncpy(*(*names+(*size)-1),q,s-q);
}
break;
}
}
return 0;
}
Парсим путь...Это ужасно!!!
+99.8
#include "org_herac_tuxguitar_player_impl_midiport_oss_MidiSystem.h"
...
JNIEXPORT jlong JNICALL Java_org_herac_tuxguitar_player_impl_midiport_oss_MidiSystem_malloc(JNIEnv* env, jobject obj) {
...
}
Взято из TuxGuitar
+133.4
/****************************************************************************
#if !(TARGET_IS_NT50_OR_LATER)
#error You need a Windows 2000 or later to run this stub because it uses these features:
#error /robust command line switch.
#error However, your C/C++ compilation flags indicate you intend to run this app on earlier systems.
#error This app will die there with the RPC_X_WRONG_STUB_VERSION error.
#endif
...
где-то глубоко
* Macros for targeted platforms
****************************************************************************/
#if (0x501 <= _WIN32_WINNT)
#define TARGET_IS_NT51_OR_LATER 1
#else
#define TARGET_IS_NT51_OR_LATER 0
#endif
#if (0x500 <= _WIN32_WINNT)
#define TARGET_IS_NT50_OR_LATER 1
#else
#define TARGET_IS_NT50_OR_LATER 0
#endif
#if (defined(_WIN32_DCOM) || 0x400 <= _WIN32_WINNT)
#define TARGET_IS_NT40_OR_LATER 1
#else
#define TARGET_IS_NT40_OR_LATER 0
#endif
#if (0x400 <= WINVER)
#define TARGET_IS_NT351_OR_WIN95_OR_LATER 1
#else
#define TARGET_IS_NT351_OR_WIN95_OR_LATER 0
#endif
Код , сгенерированный компилятором MIDL для dll прокси/заглушки COM объекта.
VS2005 :)
+106.7
char *getUI_ID_AsString(MENU_ID menuId)
{
char *IdStr;
if((menuId == VOLUME_ID) || (menuId == POPUPWIN_ID) || (menuId == YESNOWIN_ID) || (menuId == MAINMENU_ID) || (menuId ==
MODEMENU_ID) || (menuId == USBMODE_ID) || (menuId == SETTINGSMENU_ID) || (menuId == MENUPLAYMODE_ID) || (menuId == MENUEQ_ID)
|| (menuId == MENUSETTING_ID) || (menuId == MENULOCK_ID) || (menuId == MENUPLAYSPEED_ID) || (menuId == MENUCONTRAST_ID) || (menuId ==
MENUBACKLIGHT_ID) || (menuId == MENULANGUAGE_ID) || (menuId == MENUSHUTDOWN_ID) || (menuId == MENUINFO_ID) || (menuId ==
MENUBEEP_ID) || (menuId == MENUFACTORYSET_ID) || (MENUUSEREQ_ID) || (menuId == SET_PREFERENCES_ID) || (menuId ==
MENUCONFIRM_RESET_ID) || (menuId == MENUCONFIRM_FORMAT_ID) || (menuId == MAINRECMENU_ID) || (menuId == RECSETMODE_ID) ||
(menuId == RECSETINPUT_ID) || (menuId == RECSETVAD_ID) || (menuId == RECSETAUTOSYNC_ID) || (menuId == NAVIGATION_ID) ||
(menuId == PROMPT_VOLUME_ID) || (menuId == MENUGPSAPPL_MAIN_ID) || (menuId == POWERON_CONNECTING_ID) || (menuId ==
HOMESCREEN_ID) || (menuId == RC_DOWNLOADING_ID) || (menuId == SCREEN_BRIGHTNESS_ID) || (menuId == ABOUT_ID) || (menuId ==
INSTMENU_ID) || (menuId == INST_ABOUT_ID) || (menuId == DISPL_ORIENT_ID) || (menuId == LINEOUT_ID) || (menuId ==
PRIVACY_MUTE_ID) || (menuId == TEST_INSTALL_ID) || (menuId == FACTORY_RESET_ID) || (menuId == CALL_DTMF_ID) || (menuId ==
NAVI_FILEMENU_ID) || (menuId == NAVI_CONFIRM_DEL_ID) || (menuId == NAVI_SELECTFOLDER_ID) || (menuId == LANG_SELECT_ID) ||
(menuId == DISPLAY_JPG_ID) || (menuId == DISPLAY_TEXT_ID) || (menuId == SET_DISPLAY_ID))
{
IdStr = (char *) malloc(4);
strcpy(IdStr, " MENU");
}
else if( <тут примерно еще столько же условий> )
{
IdStr = (char *) malloc(5);
strcpy(IdStr, " PHONE");
}
else if( <тут примерно еще столько же условий> )
{
strcpy(IdStr, " PBOOK");
}
else if( <тут примерно еще столько же условий> )
{
IdStr = (char *) malloc(5);
strcpy(IdStr, " MUSIC");
}
else if( <тут примерно еще столько же условий> )
{
IdStr = (char *) malloc(3);
strcpy(IdStr, " MSG");
}
return IdStr;
}
Шедевр индусского говнокодирования. А потом с нас спрашивают, почему это у нас система нестабильно работает.
switch, по ходу, они еще в школе не прошли, да и с математикой у них плоховато. А где-то память вообще выделять не надо - зачем?
+133.7
if(no!=s.FrameCounter)
s.FramesGarbage++; //выкидываем кадр
else { s.FramesOK++; s.NakCount++; }
curbufdata=packet-data;
if(no==s.FrameCounter)
WriteAdminLog("Не готов принять отриц. квитанцию (не в ожидании подтверждения) ",no,0,TRUE);
else if(no!=s.FrameCounter) {
WriteAdminLog("Получена отриц. квитанция на последний переданный кадр! Часть данных могла потеряться. Корректируется счётчик на:",no,PARAM_LONG,FALSE);
s.FrameCounter=no;
}
Из курсовой работы (своей). Готовлю к сдаче и нахожу такое.
Видимо, в первоначальном варианте условие имело смысл, а потом я его поменял и оно стало лишним.
+136.8
...
// TODO: remove this godless "switch()"!
switch(tuntype) { // TODO: Important: do as in documentation instead of reverse-ingeniering!
#define PACKET_TRY {\
if(packet->ip_v == 4) {\
hl=packet->ip_hl<<2;\
if(hl>=sizeof(*packet))\
break;\
/* TODO: Check in RFC something about of ICMP send-back in this case */\
fprintf(stderr, "Got too short IP-header (%i)...\n",hl);\
}\
if((packet->ip_v&IPV6_VERSION_MASK) == IPV6_VERSION) {\
break;\
}\
}
#define NEXT(a) tuntype=a;\
if(tuntry>=2)\
goto tun_process_switch_end;\
tuntry++;
#define CASE(a) NEXT(a);\
case a
tun_process_switch:
// switch(tuntype) {
case TUNTYPE_NORM: // NetBSD-like?
packet=(typeof(packet))ptr;
PACKET_TRY;
CASE(TUNTYPE_EXT): // FreeBSD-like?
packet=(typeof(packet))((char *)ptr + 4);
if(s>4)
if(*ptr==0x02)
PACKET_TRY;
CASE(TUNTYPE_ETH): // Ethernet? TODO: Implement VLAN-tagging
packet=(typeof(packet))((char *)ptr + sizeof(*eth));
eth=(typeof(eth))ptr;
if(!teth) {
teth=alloca(sizeof(*teth));
memcpy(&teth->ether_shost, ð->ether_dhost, sizeof(teth->ether_shost));
memcpy(&teth->ether_dhost, ð->ether_shost, sizeof(teth->ether_dhost));
teth->ether_type=ETHERTYPE_IP;
}
if(s>sizeof(*eth))
// if((*(char *)ð->ether_type==0x08/* not IPv4? */)||(*(char *)ð->ether_type==0x86/* not IPv6? */)) // TODO: Implement compatibility with all protocols over ethernet
PACKET_TRY;
NEXT(TUNTYPE_NORM);
goto tun_process_switch;
default:
tuntype=TUNTYPE_NORM;
goto tun_process_switch;
// }
tun_process_switch_end:
#undef CASE
#undef NEXT
#undef PACKET_TRY
if(tuntry<~0)
tuntry=0;
tuntype=oldtuntype;
fprintf(stderr, "Got unknown packet. Flushing...\n");
FLUSH; // Flush all. We don't know the length of packet with unknown type.. So, we have to flush the buffer, to probably get new packets from the start.
goto tun_process_while;
}
...
"Ляпотааааа"... Очень "структурный" switch...
+139.3
if (errno==EINTR) while (errno==EINTR)
{
fseek(fr,loffset,SEEK_SET);
fgets(line_buffer,len,fr);
}
sacc - система биллинга для squid
Одной проверки на ошибку - видимо, недостаточно