You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

181 lines
6.8 KiB

Index: common.c
--- common.c.orig 2006-12-14 01:29:24.000000000 +0100
+++ common.c 2011-02-03 11:42:25.000000000 +0100
@@ -397,7 +397,7 @@
/* We don't want to be redirected back to captcha page, but ratehr to
** one from which we were redirected to captcha in the first place.
*/
- const char *zUri = (P("cnxp")!=0) ? P("cnxp") : getenv("REQUEST_URI");
+ const char *zUri = (P("nxp")!=0) ? P("nxp") : getenv("REQUEST_URI");
@ <a href="honeypot"><small><notatag arg="meaningless"></small></a>
@ <small><a href="login?nxp=%T(zUri)" title="Log in">Not logged in</a></small>
}
Index: config.h
--- config.h.orig 2007-01-28 00:29:40.000000000 +0100
+++ config.h 2011-02-03 11:42:46.000000000 +0100
@@ -93,3 +93,6 @@
# undef CVSTRAC_I18N
# define CVSTRAC_I18N 0
#endif
+
+#define sqlite3StrNICmp sqlite3_strnicmp
+
Index: db.c
--- db.c.orig 2007-01-28 19:40:07.000000000 +0100
+++ db.c 2011-02-03 11:42:25.000000000 +0100
@@ -154,13 +154,13 @@
}else if( (!g.okWrite || g.isAnon) && sqlite3StrICmp(zArg1,"ticket")==0
&& sqlite3StrICmp(zArg2,"contact")==0){
return SQLITE_IGNORE;
- }else if( !g.okCheckout && sqlite3StrICmp(zArg1,"chng")==0 ){
+ }else if( !g.okRead && sqlite3StrICmp(zArg1,"chng")==0 ){
return SQLITE_IGNORE;
}else if( !g.okCheckout && sqlite3StrICmp(zArg1,"filechng")==0 ){
return SQLITE_IGNORE;
}else if( !g.okCheckout && sqlite3StrICmp(zArg1,"file")==0 ){
return SQLITE_IGNORE;
- }else if( !g.okCheckout && sqlite3StrICmp(zArg1,"inspect")==0 ){
+ }else if( !g.okRead && sqlite3StrICmp(zArg1,"inspect")==0 ){
return SQLITE_IGNORE;
}else if( !g.okRead && sqlite3StrICmp(zArg1,"ticket")==0 ){
return SQLITE_IGNORE;
@@ -2020,7 +2020,7 @@
*/
static void f_decode(sqlite3_context *context, int argc, sqlite3_value **argv){
if( argc==2 ) {
- const char *zIn = (const char*)sqlite3_value_text(argv[0]);
+ const char *zIn = (const char*)sqlite3_value_blob(argv[0]);
int nBytes = sqlite3_value_int(argv[1]);
if( zIn && zIn[0] && nBytes>0 ){
char *zOut = calloc(nBytes,1);
Index: format.c
--- format.c.orig 2007-01-28 23:50:24.000000000 +0100
+++ format.c 2011-02-03 11:42:25.000000000 +0100
@@ -778,7 +778,7 @@
if( az && az[0] && az[1] ){
cgi_printf("<a href=\"%z\" title=\"%h\">",zLink,az[0]);
/* FIXME: should use a <span> with the ticket status as a class */
- if( az[1][0] == 'n' || az[1][0] == 'a' ){
+ if( az[1][0] != 'c' ){
cgi_printf("#%d",tn);
}else{
cgi_printf("<strike>#%d</strike>",tn);
Index: makeheaders.c
--- makeheaders.c.orig 2006-12-14 01:35:46.000000000 +0100
+++ makeheaders.c 2011-02-03 11:42:25.000000000 +0100
@@ -2136,7 +2136,7 @@
zArg++;
}
if( *zArg==0 || *zArg=='\n' ){ return 0; }
- nArg = pToken->nText + (int)pToken->zText - (int)zArg;
+ nArg = pToken->nText + pToken->zText - zArg;
if( nArg==9 && strncmp(zArg,"INTERFACE",9)==0 ){
PushIfMacro(0,0,0,pToken->nLine,PS_Interface);
}else if( nArg==16 && strncmp(zArg,"EXPORT_INTERFACE",16)==0 ){
@@ -2155,7 +2155,7 @@
zArg++;
}
if( *zArg==0 || *zArg=='\n' ){ return 0; }
- nArg = pToken->nText + (int)pToken->zText - (int)zArg;
+ nArg = pToken->nText + pToken->zText - zArg;
PushIfMacro("defined",zArg,nArg,pToken->nLine,0);
}else if( nCmd==6 && strncmp(zCmd,"ifndef",6)==0 ){
/*
@@ -2166,7 +2166,7 @@
zArg++;
}
if( *zArg==0 || *zArg=='\n' ){ return 0; }
- nArg = pToken->nText + (int)pToken->zText - (int)zArg;
+ nArg = pToken->nText + pToken->zText - zArg;
PushIfMacro("!defined",zArg,nArg,pToken->nLine,0);
}else if( nCmd==4 && strncmp(zCmd,"else",4)==0 ){
/*
@@ -2792,7 +2792,7 @@
fprintf(stderr,
"%s: Can't overwrite this file because it wasn't previously\n"
"%*s generated by 'makeheaders'.\n",
- pFile->zHdr, strlen(pFile->zHdr), "");
+ pFile->zHdr, (int)strlen(pFile->zHdr), "");
nErr++;
}else if( strcmp(zOldVersion,zNewVersion)!=0 ){
if( report ) fprintf(report,"updated\n");
@@ -2951,10 +2951,10 @@
pDecl->zName,
zLabel,
pDecl->zFile,
- pDecl->pComment ? (int)pDecl->pComment/sizeof(Token) : 0,
+ pDecl->pComment ? /* TOTALLY BOGUS: (int)pDecl->pComment/sizeof(Token) */ 0 : 0,
pDecl->pComment ? pDecl->pComment->nText+1 : 0,
- pDecl->zIf ? strlen(pDecl->zIf)+1 : 0,
- zDecl ? strlen(zDecl) : 0,
+ pDecl->zIf ? (int)strlen(pDecl->zIf)+1 : 0,
+ zDecl ? (int)strlen(zDecl) : 0,
pDecl->pComment ? pDecl->pComment->nLine : 0,
pDecl->tokenCode.nText ? pDecl->tokenCode.nText+1 : 0
);
Index: svn.c
--- svn.c.orig 2006-12-14 01:27:25.000000000 +0100
+++ svn.c 2011-02-03 11:42:25.000000000 +0100
@@ -205,7 +205,10 @@
* If there's no repository defined, bail and wait until the admin sets one.
*/
zRoot = db_config("cvsroot","");
- if( zRoot[0]==0 ) return 1;
+ if( zRoot[0]==0 ) {
+ db_execute("COMMIT");
+ return 1;
+ }
nBaseRevision = atoi(db_config("historysize","0"));
if( nBaseRevision
Index: throttle.c
--- throttle.c.orig 2006-05-25 10:20:24.000000000 +0200
+++ throttle.c 2011-02-03 11:42:25.000000000 +0100
@@ -165,7 +165,7 @@
}
if( zUrl==0 ) zUrl = "index";
- cgi_redirect(mprintf("captcha?cnxp=%T", zUrl));
+ cgi_redirect(mprintf("captcha?nxp=%T", zUrl));
}else if( overload && exitOnOverload ){
/* Just block the client */
lockout();
Index: ticket.c
--- ticket.c.orig 2006-12-14 01:33:31.000000000 +0100
+++ ticket.c 2011-02-03 11:42:25.000000000 +0100
@@ -392,7 +392,7 @@
@ <tr>
@ <td align="right"><nobr>
@ Assigned To:
- az = db_query("SELECT id FROM user UNION SELECT '' ORDER BY id");
+ az = db_query("SELECT id FROM user WHERE capabilities LIKE '%%w%%' UNION SELECT '' ORDER BY id");
cgi_v_optionmenu(0, "w", zWho, (const char **)az);
db_query_free(az);
@ </nobr></td>
@@ -1335,7 +1335,7 @@
@ <nobr>
@ Assigned To:
azUsers = (const char**)db_query(
- "SELECT id FROM user UNION SELECT '' ORDER BY id");
+ "SELECT id FROM user WHERE capabilities LIKE '%%w%%' UNION SELECT '' ORDER BY id");
cgi_v_optionmenu(0, "a", aParm[4].zNew, azUsers);
@ </nobr>
@ &nbsp;&nbsp;&nbsp;
@@ -1463,14 +1463,16 @@
const char *zTn;
char *zErrMsg = 0;
char *zTktTitle;
+ const char *zOwner;
login_check_credentials();
- if( !g.okWrite ){ login_needed(); return; }
throttle(1,1);
tn = rn = 0;
zTn = PD("tn","");
sscanf(zTn, "%d,%d", &tn, &rn);
if( tn<=0 ){ cgi_redirect("index"); return; }
+ zOwner = db_short_query("SELECT owner FROM ticket WHERE tn=%d", tn);
+ if( !g.okWrite && !(zOwner != NULL && strcmp(zOwner, g.zUser) == 0) ){ login_needed(); return; }
bprintf(zPage,sizeof(zPage),"%d",tn);
doPreview = P("pre")!=0;
doSubmit = P("submit")!=0;