Pages : 1
#1 Le 22/10/2008, à 22:50
- Yeye75
'Problème de compilation'
Bonjour tous le monde,
Voici maintenant 3 jours que je suis bloqué sur un bug :-(
Le ./configure ce passe bien, mais le make ne veut pas :'(
L'erreur :
GIDS -c server_stats.c
In function ‘open’,
inlined from ‘server_stats_save’ at server_stats.c:328:
/usr/include/bits/fcntl2.h:51: erreur: call to ‘__open_missing_mode’ declared with attribute error: open with O_CREAT in second argument needs 3 arguments
make[5]: *** [server_stats.o] Erreur 1
make[5]: quittant le répertoire « /usr/src/snort_inline-2.4.5/src/preprocessors/flow/portscan »
make[4]: *** [all-recursive] Erreur 1
make[4]: quittant le répertoire « /usr/src/snort_inline-2.4.5/src/preprocessors/flow »
make[3]: *** [all-recursive] Erreur 1
make[3]: quittant le répertoire « /usr/src/snort_inline-2.4.5/src/preprocessors »
make[2]: *** [all-recursive] Erreur 1
make[2]: quittant le répertoire « /usr/src/snort_inline-2.4.5/src »
make[1]: *** [all-recursive] Erreur 1
make[1]: quittant le répertoire « /usr/src/snort_inline-2.4.5 »
make: *** [all] Erreur 2
Si quelqu'un a une idée
Je suis à l'écoute .
#2 Le 22/10/2008, à 22:54
- Yeye75
Re : 'Problème de compilation'
Oupss, me suis trompé dans le copier coller .
Voici l'erreur ^^
-aliasing -c server_stats.c
In function ‘open’,
inlined from ‘server_stats_save’ at server_stats.c:328:
/usr/include/bits/fcntl2.h:51: erreur: call to ‘__open_missing_mode’ declared with attribute error: open with O_CREAT in second argument needs 3 arguments
make[5]: *** [server_stats.o] Erreur 1
make[5]: quittant le répertoire « /usr/src/snort_inline-2.6.1.5/src/preprocessors/flow/portscan »
make[4]: *** [all-recursive] Erreur 1
make[4]: quittant le répertoire « /usr/src/snort_inline-2.6.1.5/src/preprocessors/flow »
make[3]: *** [all-recursive] Erreur 1
make[3]: quittant le répertoire « /usr/src/snort_inline-2.6.1.5/src/preprocessors »
make[2]: *** [all-recursive] Erreur 1
make[2]: quittant le répertoire « /usr/src/snort_inline-2.6.1.5/src »
make[1]: *** [all-recursive] Erreur 1
make[1]: quittant le répertoire « /usr/src/snort_inline-2.6.1.5 »
make: *** [all] Erreur 2
#3 Le 23/10/2008, à 15:00
- yeye75
Re : 'Problème de compilation'
Personne n'a une idée ?
#4 Le 23/10/2008, à 16:06
- nicolas.sitbon
Re : 'Problème de compilation'
Dans ton appel à la fonction open() dans server_stats.c:328, dans le troisième paramètre, mets :
open (filename, O_CREAT, S_IRUSR|S_IWUSR);
Dernière modification par nicolas.sitbon (Le 23/10/2008, à 16:06)
Hors ligne
#5 Le 24/10/2008, à 19:22
- yeye75
Re : 'Problème de compilation'
Bonsoir,
Merci pour ta réponse, mais malheureusement, je ne trouve pas ce fichier
Ptite question au passage, peux tu m'expliquer ta ligne de code ?
Tant qu'a faire, si je peux apprendre ^^
Encore merci
#6 Le 24/10/2008, à 19:59
- Link31
Re : 'Problème de compilation'
Le fichier est /usr/src/snort_inline-2.6.1.5/src/preprocessors/flow/portscan/server_stats.c, ligne 328.
L'erreur vient du fait qu'il faut indiquer explicitement les permissions du fichier à créer (man 2 open).
Hors ligne
#7 Le 26/10/2008, à 16:59
- yeye75
Re : 'Problème de compilation'
Bonsoir,
Voici ce que j'ai dans mon server_starts
int server_stats_save(SERVER_STATS *ssp, char *filename)
{
SFXHASH_NODE *nodep;
unsigned char buf[STATSREC_SIZE];
int fd;
if(!filename || !ssp)
return FLOW_ENULL;
#ifndef O_SYNC
#define O_SYNC O_FSYNC
#endif
/* open this description, create it if necessary, always wait on
* sync to disk w/ every write, only write */
fd = open(filename, O_CREAT|O_TRUNC|O_SYNC|O_WRONLY); [b]<=== ligne 328[/b]
if(fd < 0)
{
if(s_debug)
{
flow_printf("%s was not found\n", filename);
}
return FLOW_NOTFOUND;
}
/* this is a crappy parser... that's par for the course */
for( nodep = sfxhash_ghead(ssp->ipv4_table);
nodep != NULL;
nodep = sfxhash_gnext(nodep) )
{
SERVER_KEY *kp = (SERVER_KEY *) nodep->key;
u_int32_t count = *(u_int32_t *) nodep->data;
u_int8_t family = '4';
u_int32_t ipv4_address;
u_int16_t port;
u_int8_t protocol;
ssize_t wbytes = 0;
ssize_t wsize;
count = ntohl(count);
ipv4_address = htonl(kp->address);
port = htons((u_int16_t) kp->port);
protocol = (u_int8_t) kp->protocol;
memcpy(buf + FAMILY_OFFSET, &family, FAMILY_SIZE);
memcpy(buf + IPV4_OFFSET, &ipv4_address, IPV4_SIZE);
memcpy(buf + PORT_OFFSET, &port, PORT_SIZE);
memcpy(buf + IP_PROTO_OFFSET, &protocol, IP_PROTO_SIZE);
memcpy(buf + COUNT_OFFSET, &count, COUNT_SIZE);
/* now make sure we get a full record on disk */
while(wbytes < STATSREC_SIZE)
{
/* write the number of bytes we already have - the #
* already written */
wsize = write(fd, buf, (STATSREC_SIZE - wbytes));
if(wsize < 0)
{
/* this record was truncated */
flow_printf("Truncated Server Record!\n");
return FLOW_EINVALID;
}
else
{
wbytes += wsize;
}
}
}
return FLOW_SUCCESS;
}
Désolé, mais étant noobie en la matière, je ne sais pas comment mettre les droits
Si tu as un lien qui pourrais m'expliquer, je suis preneur
Help me please
Hors ligne
#8 Le 26/10/2008, à 17:29
- Link31
Re : 'Problème de compilation'
nicolas.sitbon t'a déjà dit comment faire.
Après, je n'ai pas la moindre idée des droits précis nécessaires pour ton application.
Hors ligne
#9 Le 26/10/2008, à 18:08
- yeye75
Re : 'Problème de compilation'
Malheureusement, la solution de nicolas.sitbon ne fonctionne pas
Hors ligne
#10 Le 26/10/2008, à 21:25
- nicolas.sitbon
Re : 'Problème de compilation'
Soyons fou!
fd = open(filename, O_CREAT|O_TRUNC|O_SYNC, S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH);
Hors ligne
#11 Le 27/10/2008, à 18:53
- yeye75
Re : 'Problème de compilation'
Ok ca fonctionne, nikel !
Merci à vous pour ces réponses rapide, j'espère pouvoir en faire de même plus tard
Encore merci, sujet résolu ...
Hors ligne
#12 Le 22/01/2009, à 22:40
- lamsoun
Re : 'Problème de compilation'
Salut tout le monde,
j'ai le même problème mais je ne trouve pas le fichier /usr/src/snort_inline-2.6.1.5/src/preprocessors/flow/portscan/server_stats.c
need help !!! :s
merci
Pages : 1