diff options
Diffstat (limited to 'getgbook.c')
-rw-r--r-- | getgbook.c | 6 |
1 files changed, 3 insertions, 3 deletions
@@ -44,7 +44,7 @@ int getpagelist() return 0; s+=strlen("_OC_Run({\"page\":["); - for(i=0, p=pages[0];*s; s++) { + for(i=0, p=pages[0];*s && i<MAXPAGES; s++) { if(*s == ']') break; if(!strncmp(s, "\"pid\"", 5)) { @@ -67,7 +67,7 @@ int getpagelist() int getpageurls(char *pagecode, char *cookie) { char url[URLMAX], code[STRMAX], m[STRMAX]; - char *c, *d, *p, *buf = NULL; + char *c, *d, *p, *q, *buf = NULL; int i, j; snprintf(url, URLMAX, "/books?id=%s&pg=%s&jscmd=click3&q=subject:a", bookid, pagecode); @@ -94,7 +94,7 @@ int getpageurls(char *pagecode, char *cookie) { } if(j == -1) /* TODO: it would be good to add new page on the end */ break; /* of structure rather than throw it away. */ - for(p=pages[j]->url, d=c+strlen("\"src\":")+1; *d && *d != '"'; d++, p++) { + for(p=pages[j]->url, q=(pages[j]->url-(STRMAX-13-1)), d=c+strlen("\"src\":")+1; *d && *d != '"' && p != q; d++, p++) { if(!strncmp(d, "\\u0026", 6)) { *p = '&'; d+=5; |