Fossil

Check-in [a6477bca65]
Login

Check-in [a6477bca65]

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Fix a possible "use-after-free" while rendering a [/help?cmd=/file|/file] page for the case when "ci" parameter is missing. This is a preliminary fix, it may introduce a (tiny) memory leak.
Downloads: Tarball | ZIP archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA3-256: a6477bca6540cde677543c7a41a6b3b40a8ba1231d5ee14bc35623c3b7162693
User & Date: george 2021-06-19 02:29:02.120
Context
2021-06-21
12:35
In the test-fossil-system command, show the result code coming back from each command. ... (check-in: f6b67e157e user: drh tags: trunk)
2021-06-19
20:58
This should demonstrate a behavior of inline STYLE tags. Notice gray background of PRE elements in [/doc/inline-style-inconsistency/www/defcsp.md|www/defcsp.md] and the lack of it in [/doc/inline-style-inconsistency/www/webui.wiki|www/webui.wiki]. See forum [forum:/forumthread/69f475cf48|thread 69f475cf48]. ... (Leaf check-in: 1d276f7b23 user: george tags: inline-style-inconsistency)
02:29
Fix a possible "use-after-free" while rendering a [/help?cmd=/file|/file] page for the case when "ci" parameter is missing. This is a preliminary fix, it may introduce a (tiny) memory leak. ... (check-in: a6477bca65 user: george tags: trunk)
2021-06-18
20:25
Update the built-in SQLite to version 3.36.0 ... (check-in: 3a97dff2cf user: drh tags: trunk)
Changes
Unified Diff Ignore Whitespace Patch
Changes to src/info.c.
2337
2338
2339
2340
2341
2342
2343
2344
2345
2346
2347
2348
2349
2350
2351
    @ The name= query parameter is missing
    style_finish_page();
    return;
  }

  url_initialize(&url, g.zPath);
  url_add_parameter(&url, "name", zName);
  url_add_parameter(&url, "ci", zCI);

  if( zCI==0 && !isFile ){
    /* If there is no ci= query parameter, then prefer to interpret
    ** name= as a hash for /artifact and /whatis.  But for not for /file.
    ** For /file, a name= without a ci= while prefer to use the default
    ** "tip" value for ci=. */
    rid = name_to_rid(zName);







|







2337
2338
2339
2340
2341
2342
2343
2344
2345
2346
2347
2348
2349
2350
2351
    @ The name= query parameter is missing
    style_finish_page();
    return;
  }

  url_initialize(&url, g.zPath);
  url_add_parameter(&url, "name", zName);
  url_add_parameter(&url, "ci", zCI);     /* no-op if zCI is NULL */

  if( zCI==0 && !isFile ){
    /* If there is no ci= query parameter, then prefer to interpret
    ** name= as a hash for /artifact and /whatis.  But for not for /file.
    ** For /file, a name= without a ci= while prefer to use the default
    ** "tip" value for ci=. */
    rid = name_to_rid(zName);
2379
2380
2381
2382
2383
2384
2385
2386

2387
2388
2389
2390
2391
2392
2393
        "   AND event.objid=mlink.mid"
        "   AND blob.rid=mlink.mid"
        " ORDER BY event.mtime DESC",
        zName
      );
      if( db_step(&q)==SQLITE_ROW ){
        rid = db_column_int(&q, 0);
        zCI = zCIUuid = fossil_strdup(db_column_text(&q, 1));

        url_add_parameter(&url, "ci", zCI);
      }
      db_finalize(&q);
      if( rid==0 ){     
        style_header("No such file");
        @ File '%h(zName)' does not exist in this repository.
      }







|
>







2379
2380
2381
2382
2383
2384
2385
2386
2387
2388
2389
2390
2391
2392
2393
2394
        "   AND event.objid=mlink.mid"
        "   AND blob.rid=mlink.mid"
        " ORDER BY event.mtime DESC",
        zName
      );
      if( db_step(&q)==SQLITE_ROW ){
        rid = db_column_int(&q, 0);
        zCI = fossil_strdup(db_column_text(&q, 1));
        zCIUuid = fossil_strdup(zCI);
        url_add_parameter(&url, "ci", zCI);
      }
      db_finalize(&q);
      if( rid==0 ){     
        style_header("No such file");
        @ File '%h(zName)' does not exist in this repository.
      }