• last updated 4 hours ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates
Make use of new API "ad_mktmpdir" and "ad_opentmpfile" instead of "ad_tmpnam"

Make use of new API "ad_mktmpdir" and "ad_opentmpfile" instead of "ad_tmpnam"

    • -3
    • +3
    /openacs-4/packages/xowiki/xowiki.info
    • -3
    • +2
    /openacs-4/packages/xowiki/tcl/import-procs.tcl
Moved the experimental disk-cache from utilities to the other cacheing infrastructure

fix bug, when Tcl's file command uses uplevel

This change fixes a bug whem "ad_file tmpfile filename ..." is used.

The output variable "filename" was created on the wrong calling level.

Make use of new API "ad_mktmpdir" and "ad_opentmpfile" instead of "ad_tmpnam"

New API "ad_mktmpdir" and "ad_opentmpfile"

Since "ns_mktemp" is deprecated (on the C level) and is prone

to vulnerabilities. This effects as well "ad_tmpnam" in OpenACS,

which uses "ns_mktemp".

Newer C-compilers complain about this more loudly:

Due to security concerns inherent in the design of mktemp(3),

it is highly recommended that you use mkstemp(3) instead.

The security concern is that when ns_mktemp() is used to generate a

(unique) file name, which is used for opening a file, an attacker can

intercept the running binary and sneak in a different file. Although

ns_mktemp() guarantees to return a unique file name, there is no

mechanism to prevent another process or an attacker from creating a

file with the same name before the application attempts to open it.

The problem with using mkstemp() instead is that it has different

semantics, since it returns the open file. So one cannot blindly

replace these calls, but it requires some refactoring. Unfortunately,

this also effects application code, since NaviServer offers

"ns_mktemp" on the Tcl level.

To make it short: one has to separate out different use_cases of

"ad_tmpnam":

(a) use it to obtain a name for creating a file, which is subsequently opened

(b) use it to obtain a name for creating a directory

(c) use it as a name, providing name as a unique name to some external programs.

Case (a) is similar to the "mkstemp(3)" recommendation above. For this

usage scenario, the call "file tmpfile..." in Tcl 8.6 can be used (but

it should also respect the configured tmp directory. This function

is also very similar to "ns_opentempdir" in NaviServer, which uses

as well "file tmpfile". Therefore, we have created a new API call

"ad_opentmpdir ..." which respects the OpenACS settings.

Case (b) can be addressed by "file tempdir" in Tcl 8.7, or by a function

in tcllib. The new API function "ad_mktmpdir" provides respects the

OpenACS settings, and works for Tcl 8.6 or newer.

Case (c) is somewhat different, since it just wants to create a unique name. This case has not received a special API so far

    • -2
    • +2
    /openacs-4/packages/acs-tcl/acs-tcl.info
switch from png files for dot to inlne svg

This helps to avoid writing the .png files to some directory, which has

to be accessible

    • -24
    • +27
    /openacs-4/packages/xowf/tcl/xowf-procs.tcl
Bugfix: Get database name from postgres connection string keywords

The connection string can be provided for libpq either as the plain

dbname (old style) or as a list of keywords (new style).

In the latter case, the full keyword string was returned

instead of the dbname.

fixed typo (many thanks to Franz Penz for spotting this)

include request start in long-call listing

Replaced "ns_mktemp" by "ad_tmpnam" to ease code maintenance

The underlying C library API for "ns_mktemp" is deprecated

for security reasons, we will have to do something about it.

bump version numbers and add version check URLs

added versionCheckURL

Added link for version check when configured

bump version of the highcharts upstream package to 10.3.1

minor updates

most significant changes:

- longer lines kept for long-calls

- adapted size of buffer for long-call analysis

document right changes on new installs for api-doc

This is in fact an include and not a standalone page

improve Oracle compatibility

make behavior more robust when (erronously) called without a connection

without handling no-connection, the error message is swallowed

Fix for updating the time window via configuration dialog

In cases, where no student submissions exists, updating the time

window via the configuration dialog was ignored.

Many thanks to Thomas Renner for finding the cause and providing a fix.

    • -1
    • +15
    /openacs-4/packages/xowf/lib/inclass-exam.wf
made time_window_setup public for saving the values from the configuration dialog

Improved appearance in TRN mode

- don't set "alt" attribute in classic mode by default to the title.

The title is often be provided as a message key, using it twice

causes two edit controls

- in acs-lang, the extra setting of link_html, which provided

the title attribute can be omitted, since adp:icon renders this

by itself.

beautify TRN mode in developer support

in essence, this change switches from CSS icons to <adp:icon>

since in default setup (when no themes/icon sets are installed)

the CSS based rendering was bad. Using <adp:icon> offers

more flexibility and tailorability.

fix wrong icon in "classic" mode (using images)

improve Oracle compatibility

improve Oracle compatibility

improve Oracle compatibility

fix setting of dict value in error cases

improve Oracle compatibility