Hi all!
Let me invite you to the April 2018 meeting, taking place this Thursday,
April 26, 2018 at 19:00 UTC.
There have been no requests for additional agenda points yet and I'm not
aware of any developments of the outstanding points of last meeting, so
right now the agenda only includes the Status Updates.
If there is something you want discussed this month, please reply to
this mail.
As waiting for every developer's Status Report still wastes too much
time each month, I'm asking everyone to prepare a short text in advance.
Unlike previous meetings, let's all try to post our status updates
simultaneously this time and let the IRC server handle the congestion.
This may make some reports harder to read, but we should be able to move
on much quicker.
Best regards,
Colin
Hey Eric,
On 2018-04-02 12:58, Eric Kohl wrote:
> - RtlStringCbPrintfW(strbuf, sizeof(strbuf), L"%d:%d:%d", hours, minutes, seconds);
> + swprintf(szBuffer, L"%02d:%02d:%02d", iHours, iMinutes, iSeconds);
Unfortunately I must disagree with this change.
Buffer overflows are a big enough threat that code review and
static analysis are not generally considered sufficient to protect
against them.
So it's best practice for new code to always verify sizes at run-time,
and never to use s(w)print.
Best regards,
Thomas
PS: from what I see, iHours can be as large as 1193046, which won't
fit in 2 digits
So to be clear, while the kernel still has tons of incompatible code and
issues to barely run as a Win2003-compatible kernel, whenever there's an NT
design decision you disagree with, you're going to be rewriting the little
bit of code that _does work well_ to work contrary to how NT works? Did I
get that right?
Good luck.
Best regards,
Alex Ionescu
On Mon, Apr 2, 2018 at 6:48 AM, Hermès BÉLUSCA-MAÏTO <hermes.belusca(a)sfr.fr>
wrote:
> Yes, to only allow programs that REALLY REALLY REALLY REALLY ….. need to
> do so to trigger the hard-error “shutdown” BSOD from user-mode to do so,
> and these programs would better be only those that run only in SYSTEM
> rights, and more exactly these include CSRSS, WINLOGON and SMSS when
> something very bad happen to them.
>
> I would not appreciate, for example, that when I run a program under a
> not-so privileged account (like, some random user account) that has just
> the shutdown privilege to shut the computer down properly, that this
> program suddently “BSODS” my machine.
>
> To these programs, I say “f$ck these!”
>
>
>
> Regards,
>
> Hermès
>
>
>
> *De :* Ros-dev [mailto:ros-dev-bounces@reactos.org] *De la part de* Alex
> Ionescu
> *Envoyé :* lundi 2 avril 2018 04:20
> *À :* ReactOS Development List; Hermès Bélusca-Maïto
> *Cc :* Linda Wang
> *Objet :* Re: [ros-dev] [ros-diffs] 02/08: [NTOSKRNL] Forbid processes
> without the Tcb prvilege to perform a user-mode hard-error BSOD.
>
>
>
> Is there a point to this blatant behavior change?
>
>
> Best regards,
> Alex Ionescu
>
>
>
> On Sun, Apr 1, 2018 at 3:04 PM, Hermès Bélusca-Maïto <
> hermes.belusca-maito(a)reactos.org> wrote:
>
> https://git.reactos.org/?p=reactos.git;a=commitdiff;h=
> f0729b30bb79d6f538cf2b9578ff8ebe7989f8d3
>
> commit f0729b30bb79d6f538cf2b9578ff8ebe7989f8d3
> Author: Hermès Bélusca-Maïto <hermes.belusca-maito(a)reactos.org>
> AuthorDate: Sun Apr 1 14:46:19 2018 +0200
> Commit: Hermès Bélusca-Maïto <hermes.belusca-maito(a)reactos.org>
> CommitDate: Sun Apr 1 22:39:31 2018 +0200
>
> [NTOSKRNL] Forbid processes without the Tcb prvilege to perform a
> user-mode hard-error BSOD.
> ---
> ntoskrnl/ex/harderr.c | 14 ++++++++++++--
> 1 file changed, 12 insertions(+), 2 deletions(-)
>
> diff --git a/ntoskrnl/ex/harderr.c b/ntoskrnl/ex/harderr.c
> index 84f409a1bb..a5200e3e74 100644
> --- a/ntoskrnl/ex/harderr.c
> +++ b/ntoskrnl/ex/harderr.c
> @@ -132,8 +132,18 @@ ExpRaiseHardError(IN NTSTATUS ErrorStatus,
> /* Check if this error will shutdown the system */
> if (ValidResponseOptions == OptionShutdownSystem)
> {
> - /* Check for privilege */
> - if (!SeSinglePrivilegeCheck(SeShutdownPrivilege, PreviousMode))
> + /*
> + * Check if we have the privileges.
> + *
> + * NOTE: In addition to the Shutdown privilege we also check
> whether
> + * the caller has the Tcb privilege. The purpose is to allow only
> + * SYSTEM processes to "shutdown" the system on hard errors (BSOD)
> + * while forbidding regular processes to do so. This behaviour
> differs
> + * from Windows, where any user-mode process, as soon as it has
> the
> + * Shutdown privilege, can trigger a hard-error BSOD.
> + */
> + if (!SeSinglePrivilegeCheck(SeTcbPrivilege, PreviousMode) ||
> + !SeSinglePrivilegeCheck(SeShutdownPrivilege, PreviousMode))
> {
> /* No rights */
> *Response = ResponseNotHandled;
>
>
>
> _______________________________________________
> Ros-dev mailing list
> Ros-dev(a)reactos.org
> http://www.reactos.org/mailman/listinfo/ros-dev
>
>
If I remember correctly you can make shutdowns delayed of many days on Windows (using the InitiateSystemShutdown(Ex) function), in which case the 2-digit hour won't work at all.
Best,
Hermès
> -----Message d'origine-----
> De : Ros-dev [mailto:ros-dev-bounces@reactos.org] De la part de Thomas
> Faber
> Envoyé : lundi 2 avril 2018 14:13
> À : Eric Kohl
> Cc : ros-dev(a)reactos.org
> Objet : Re: [ros-dev] [ros-diffs] 01/01: [WINLOGON] Clean up part 2 - Replace
> the UNICODE_STRING usMessage by a PWSTR pszMessage. - Use the
> "%02d:%02d:%02d" time format and get rid of the safe string printf because
> the string will NEVER be longer than 8 character
>
> Hey Eric,
>
> On 2018-04-02 12:58, Eric Kohl wrote:
> > - RtlStringCbPrintfW(strbuf, sizeof(strbuf), L"%d:%d:%d", hours, minutes,
> seconds);
> > + swprintf(szBuffer, L"%02d:%02d:%02d", iHours, iMinutes,
> > + iSeconds);
>
> Unfortunately I must disagree with this change.
>
> Buffer overflows are a big enough threat that code review and static analysis
> are not generally considered sufficient to protect against them.
> So it's best practice for new code to always verify sizes at run-time, and
> never to use s(w)print.
>
> Best regards,
> Thomas
>
> PS: from what I see, iHours can be as large as 1193046, which won't
> fit in 2 digits
>
> _______________________________________________
> Ros-dev mailing list
> Ros-dev(a)reactos.org
> http://www.reactos.org/mailman/listinfo/ros-dev
Is there a point to this blatant behavior change?
Best regards,
Alex Ionescu
On Sun, Apr 1, 2018 at 3:04 PM, Hermès Bélusca-Maïto <
hermes.belusca-maito(a)reactos.org> wrote:
> https://git.reactos.org/?p=reactos.git;a=commitdiff;h=
> f0729b30bb79d6f538cf2b9578ff8ebe7989f8d3
>
> commit f0729b30bb79d6f538cf2b9578ff8ebe7989f8d3
> Author: Hermès Bélusca-Maïto <hermes.belusca-maito(a)reactos.org>
> AuthorDate: Sun Apr 1 14:46:19 2018 +0200
> Commit: Hermès Bélusca-Maïto <hermes.belusca-maito(a)reactos.org>
> CommitDate: Sun Apr 1 22:39:31 2018 +0200
>
> [NTOSKRNL] Forbid processes without the Tcb prvilege to perform a
> user-mode hard-error BSOD.
> ---
> ntoskrnl/ex/harderr.c | 14 ++++++++++++--
> 1 file changed, 12 insertions(+), 2 deletions(-)
>
> diff --git a/ntoskrnl/ex/harderr.c b/ntoskrnl/ex/harderr.c
> index 84f409a1bb..a5200e3e74 100644
> --- a/ntoskrnl/ex/harderr.c
> +++ b/ntoskrnl/ex/harderr.c
> @@ -132,8 +132,18 @@ ExpRaiseHardError(IN NTSTATUS ErrorStatus,
> /* Check if this error will shutdown the system */
> if (ValidResponseOptions == OptionShutdownSystem)
> {
> - /* Check for privilege */
> - if (!SeSinglePrivilegeCheck(SeShutdownPrivilege, PreviousMode))
> + /*
> + * Check if we have the privileges.
> + *
> + * NOTE: In addition to the Shutdown privilege we also check
> whether
> + * the caller has the Tcb privilege. The purpose is to allow only
> + * SYSTEM processes to "shutdown" the system on hard errors (BSOD)
> + * while forbidding regular processes to do so. This behaviour
> differs
> + * from Windows, where any user-mode process, as soon as it has
> the
> + * Shutdown privilege, can trigger a hard-error BSOD.
> + */
> + if (!SeSinglePrivilegeCheck(SeTcbPrivilege, PreviousMode) ||
> + !SeSinglePrivilegeCheck(SeShutdownPrivilege, PreviousMode))
> {
> /* No rights */
> *Response = ResponseNotHandled;
>
>
Dear ReactOS developers,
I am nosing inside Wine and ReactOS code to understand something of
their inner workings. I wanted to compare the code of d2d1.dll, but
apparently ReactOS does not have it. Is this intentional, is it just
still to be implemented, or is there any other explanation?
Thanks and all the best, Giovanni.
--
Giovanni Mascellani <g.mascellani(a)gmail.com>
Postdoc researcher - Université Libre de Bruxelles
Hi all!
With GSoC and 0.4.8 approaching, and many interesting things going on,
it's finally time for a monthly meeting again. Let me invite you to the
March 2018 meeting, taking place next Thursday, March 29, 2018.
Time will be 19:00 UTC as always.
The agenda so far includes:
- Status Updates
==> Please prepare a short text what you did since January,
so we can finish this quickly!
- GSoC
- 0.4.8 Status und Release Planning
- Hackfest 2018?
Please let me know if you want anything else to be added to the agenda.
Just as the last few times, the meeting will take place on a custom IRC
server. The required credentials will be sent shortly before the meeting
to a group of ReactOS members. If you think you belong to this group,
but didn't get a mail last time, please also let me know in advance.
See you on Thursday!
Colin
Hello there,
Here I have attached my proposal for the GSoC 2018 project regarding the search shell extension for ReactOS.
Kindly let me know if any changes are required, before submitting it to Google.
Thanks,
Abhishek
*GSoc ProposalProject: Developer Web InterfaceAuthor: Volodymyr
Tytarenkobovatitar(a)gmail.com <bovatitar(a)gmail.com>General info:Full name:
Volodymyr TytarenkoLanguages: 1. Russian (Fluently)2. Ukrainian
(Fluently)3. Polish (Fluently)4. English (Intermediate)Timezone: (GMT+1)
WarsawReactOS account: titarIRC Nickname: titarAbout me:I am second year
student in Poland. I study informatics at University of Silesia in the
specialty of developing web application. Programming is my passion. I
started programming from the age of 15 and now i have 4 games for android,
several programs on java for my needs and a lot of projects for
freelanceTime Commitment:The main important thing, what can obligations my
time in summer it’s a my University exams in June, but its only around 10
days, and i believe i will have a few exemption from the exam, because last
time i had only 1 exam out of 6. Second thing it’s a 1 week holiday in end
of July or start August, but it’s not 100%. I can spend 5-6 hours per day
on this project including holidays.Technical skills:FrontEnd: HTML5, CSS,
JavaScript and MithrillJS (arround 20)BackEnd: PHPDataBase: MySQLUX, UI,
WebDesign, GitWork with different public API: GitHub, Telegram, Instagram,
Facebook, VK, different weather api and other.I have experience Designing
api for my own projects.My test design for a similar task (Custom ERP and
CRM):Proposed Project:Develop a web system of managing and showing commits,
builds, PRs and other informations for developers of ReactOS.I really want
to work on a Website for ReactOS. I believe that I have enough knowledge to
contribute to the operating system ReactOs in this way.Milestones: 1.
Design basic interface and basic functionality. 2. Develop basic website
with Integration githubAPI.3. Gradual increase of site functionality from
the list of ideas reactos.org <http://reactos.org>Developing a website with
the provision that at every moment we need to have a fully working website,
gradually adding new features I hereby swear that I have not used nor seen
the source code to any version of the Windows operating system nor any
Microsoft product that may be related to the proposed project that is under
a license incompatible with contribution to ReactOS, including but not
limited to the leaked Windows 2000 source code and the Windows Research
Kernel.*
Hi there,
I am interested in a couple of projects under System enhancement, that I found on your projects list:
1) NT6 Recycle Bin Project
2) Search Shell extension
3) WebKit based MSHTML implementation
Kindly help me choose one, if I could get some more information regarding the projects, it would be really helpful and I can go ahead with the proposal.
Also, I have performed a complete build of ReactOS Live CD, and Boot CD and gave it a test run. I found it lacking a decent browser, tried to run iexplore.exe but it still couldn’t load any web pages. I might be able to create something to help improve on this. Looking forward to contribute to this reactOS.
Thanks,
Abhishek
Hello, I am a 3rd year student of Nosov MSTU, studying in the direction of Information and Computer science. I would like to develop components to support Wi-Fi, this is the third item from the list left on the site (https://habrahabr.ru/company/reactos/blog/351382/) Language know on average, can use greater part of his features. Experience in development is available since I combine study and work, I work in Department on creation of MES decisions. Fast learner, willing to allocate to the project 1-2 hours a day, maybe more( according to circumstances)
Здравствуйте, я студент 3 курса МГТУ им Носова, учусь на направлении Информатика и Вычислительная техника. Хотел бы заниматься разработкой компонентов для поддержки Wi-Fi, это третий пункт из списка оставленном на сайте (https://habrahabr.ru/company/reactos/blog/351382/) Язык знаю на среднем уровне, могу использовать большую часть его особенностей. Опыт в разработке имеется, т.к. совмещаю учебу и работу, работаю в отделе по созданию MES решений. Быстро учусь, готов выделять проекту 1-2 часа в день, возможно больше( по обстоятельствам)
Hi all!
I am a student and I want to try to participate in gsoc this year. I follow
ReactOS news for 4 years, I think (and even reported a few bugs).
I am a web developer but some time ago I started to study ASM and C (but no
C++ yet) in my university and found it very interesting for me.
I want to learn more about OSDev and maybe join your team finally :)
There are some thoughts about what I want to do for ROS during this summer.
1. Make ReactOS boot from btrfs. As far as I understand, freeldr does not
support btrfs and this code must be written. And boot sector ofc
I prefer this task the most (as for now). But maybe you will dispel my
dreams by saying that it requires too much effort for summer internship :)
2. I've already talked with Thomas Faber on IRC and he said that there are
some drivers that are in need of being (re)written. NICs and bluetooth
drivers may be interesting to me but I'm not sure if I can get through it.
So I'm asking your advice. Are this things doable for a student? Maybe
there are some other interesting low-level things for a GSoC'er?
Do you have mentors for them?
Basically, I want something low-level which doesn't require deep knowledge
of NT internals.
Thanks!
Victor Perevertkin
Hello once more.
Thanks for the single answer I got asking to take part. But I need one more booth supporter, preferred are team members. You have time till today evening to answer, otherwise I am not sure if I should blindly reply with the yes aka we will take part in CLT the team behind it is waiting for. In the end I reply and no one shows up. It is up to you. I got my holidays accepted last year already for being able to take part. What about the rest of the team who did not reply with a good reason not to take part already?
Greetings
Daniel
Daniel Reimer <daniel.reimer(a)reactos.org> schrieb am Sa, 03.02.2018 14:54:
> Hey guys,
>
> as every year, I need volunteers for the booth on Chemnitzer Linux Tage
> (https://chemnitzer.linux-tage.de/2018/en).
>
> This year it's on March 10-11. Anyone who has some spare time for it? I
> need at least two ppl for these days, otherwise I have to cancel it.
>
> Greetings
>
> Daniel
>
>
> _______________________________________________
> Ros-dev mailing list
> Ros-dev(a)reactos.org
> http://www.reactos.org/mailman/listinfo/ros-dev
Hello,
I'd like to propose a change for the 'Size' field:
Currently this is a localized, pre-formatted field.
By changing this to the actual size in bytes:
- We can use StrFormatByteSizeW to format it locale dependent (without
the need to manually translate it)
- We can use this value to display the progress bar, in case the
download itself does not provide this value (for example, web.archive
does not provide this).
For backwards compatibility we should probably add this as another
field, so that the 'old' rapps can still read the 'Size' field.
Regards,
Mark
Hey guys,
as every year, I need volunteers for the booth on Chemnitzer Linux Tage
(https://chemnitzer.linux-tage.de/2018/en).
This year it's on March 10-11. Anyone who has some spare time for it? I
need at least two ppl for these days, otherwise I have to cancel it.
Greetings
Daniel
Hey Amine,
seeing https://jira.reactos.org/browse/CORE-14288 just prompted me to
look into static vs dynamic 3rd party libraries, zlib and libxml2 in
particular. We use zlib in a bunch of modules these days, and libxml2 is
large and used in two, so I'm thinking we should make them dynamic.
I just did the experiment for libxml2 and it resulted in at least 0.5MB
binary size reduction and 2MB build folder size reduction, so clearly
seems worth it.[1] I'll do the test for zlib as well to make sure that's
also an improvement.
However I was thinking there might be a reason why we build those
statically right now. Do you (or anyone else) recall anything that makes
switching to dynamic a bad idea?
Thanks!
-Thomas
[1] Raw results:
Static libxml2 (MSVC debug with RTC):
msxml3.dll - 1887 KB
libxslt.dll - 1142 KB
libxml2.lib - 4953 KB (build dir only)
Dynamic libxml2 (MSVC debug with RTC):
msxml3.dll - 799 KB
libxslt.dll - 259 KB
libxml2.dll - 1592 KB
libxml2.lib - 371 KB (build dir only)
Static libxml2 (GCC debug with -O1):
msxml3.dll - 3856 KB
libxslt.dll - 2776 KB
liblibxml2.a - 48 KB (build dir only)
Dynamic libxml2 (GCC debug with -O1):
msxml3.dll - 1505 KB
libxslt.dll - 429 KB
libxml2.dll - 2553 KB
Aka project Doors!
> In the long term, we could leverage the power of Git and fork the WINE
> repository on GitHub. We could then apply Wine-Staging patches and our
> own changes to that repository. Syncing with upstream would now be
> possible by merging commits instead of overwriting files. In the end,
> DLLs from that repository could be blindly imported into the ReactOS
> repo again. No more maintaining of "wininet_ros.diff" and the like
>
> I hope we can have a solution before branching for 0.4.8. Otherwise,
> I suspect that we will lose many features of 0.4.7 and the recent
> history. For instance, DXTn support just got enabled in ReactOS, but it
> has always been based on Wine-Staging code.
>
>
> As James used to say: WINE Is Not Enough!
We often get bug reports with just a screenshot of a bluescreen; we then
go ahead and tell people that bluescreens are basically useless, they
should get a debug log and a backtrace, and also remember to tell us
what version they're using.
Since there's actually no reason why bluescreens need to be useless, I
thought I'd try to change that.
I've attached an example. The source for this quick PoC can be found at
https://github.com/ThFabba/reactos/commit/6a9f172b76bd11f763598c16e5d47299e…
Thoughts?
Hi all!
Starting with build 0.4.8-dev-655-g63a3a2c, ReactOS has first support
for NT6+ applications (aka programs written for Windows Vista, Windows
7, etc.). Please retest such applications under ReactOS!
As newer Windows APIs are still missing in ReactOS, I would be surprised
if a high number of NT6+ applications suddenly works.
However, many applications may just be compiled by a new Visual Studio
without using any modern APIs. They could work now.
My "Hello World" compiled by VS 2017 v141 toolchain printed many
messages about missing apiset DLLs in the debug log, but otherwise works
well. So the next step should obviously be finishing and integrating
Mark's work on the apiset DLLs in
https://github.com/learn-more/reactos/commits/apisets
But interestingly, the build produced by the v141_xp toolchain also
looks for these apiset DLLs. Therefore, it would be possible that an
application expects a full NT6 system when finding them. Consequently,
application compatibility could be compromised if we just dump all
apiset DLLs into ReactOS, applications now expect NT6, but the OS
continues to behave like NT5 by default.
This is why I suggest detecting an NT6+ application in ntdll to have it
auto-apply a shim that lets ReactOS behave like an NT6 OS. The apiset
DLLs should only be available in this mode, but not for the NT5
personality of ReactOS. Let's not import the apisets before the ntdll
shim work is done in order to preserve our existing application
compatibility.
Cheers,
Colin