Bugfixes:
+ * Fix incorrect `compressed datagram contains loop' error.
adns (0.10) unstable; urgency=low
Bugfixes:
adns (0.10) unstable; urgency=low
Bugfixes:
+ * Fix incorrect `compressed datagram contains loop' error.
* Actually compile shared libraries by default !
General Improvements:
* Actually compile shared libraries by default !
General Improvements:
adns_status adns__findlabel_next(findlabel_state *fls,
int *lablen_r, int *labstart_r) {
adns_status adns__findlabel_next(findlabel_state *fls,
int *lablen_r, int *labstart_r) {
- int lablen, jumped, jumpto;
dgram= fls->dgram;
for (;;) {
if (fls->cbyte >= fls->dglen) goto x_truncated;
dgram= fls->dgram;
for (;;) {
if (fls->cbyte >= fls->dglen) goto x_truncated;
GET_B(fls->cbyte,lablen);
if (!(lablen & 0x0c0)) break;
if ((lablen & 0x0c0) != 0x0c0) return adns_s_unknownformat;
GET_B(fls->cbyte,lablen);
if (!(lablen & 0x0c0)) break;
if ((lablen & 0x0c0) != 0x0c0) return adns_s_unknownformat;
- if (jumped++) {
- adns__diag(fls->ads,fls->serv,fls->qu,"compressed datagram contains loop");
- return adns_s_invalidresponse;
- }
if (fls->cbyte >= fls->dglen) goto x_truncated;
if (fls->cbyte >= fls->max) goto x_badresponse;
GET_B(fls->cbyte,jumpto);
if (fls->cbyte >= fls->dglen) goto x_truncated;
if (fls->cbyte >= fls->max) goto x_badresponse;
GET_B(fls->cbyte,jumpto);
if (fls->dmend_r) *(fls->dmend_r)= fls->cbyte;
}
*lablen_r= lablen;
if (fls->dmend_r) *(fls->dmend_r)= fls->cbyte;
}
*lablen_r= lablen;
-/*if (labstart_r) fprintf(stderr,"label %d >%.*s<\n",lablen,lablen,fls->dgram+*labstart_r);*/
return adns_s_ok;
x_truncated:
return adns_s_ok;
x_truncated: