| delorie.com/archives/browse.cgi | search |
| Xref: | news2.mv.net comp.os.msdos.djgpp:4095 |
| From: | terra AT diku DOT dk (Morten Welinder) |
| Newsgroups: | comp.os.msdos.djgpp |
| Subject: | Re: bugs in cwsdpmi? |
| Date: | 19 May 1996 12:41:52 GMT |
| Organization: | Department of Computer Science, U of Copenhagen |
| Lines: | 31 |
| Sender: | terra AT tyr DOT diku DOT dk |
| Message-ID: | <4nn4ug$i63@vidar.diku.dk> |
| References: | <4nlke7$aka AT news1 DOT goodnet DOT com> |
| NNTP-Posting-Host: | tyr.diku.dk |
| To: | djgpp AT delorie DOT com |
| DJ-Gateway: | from newsgroup comp.os.msdos.djgpp |
snarfy AT goodnet DOT com writes:
>Here is an interesting 'bug' that I have found in cwsdpmi. When I compile
>the attached file and run it under dos, it blows up giving me a SIGSEGV, but
>it works correctly under a windows dos box and in linux dosemu. Here
>is the program:
>#include <stdio.h>
>typedef struct {
>int x;
>int y;
>} foo;
>foo *bar;
>void main()
>{
> bar->x = 3;
> bar->y = 4;
> printf("x = %d\n", bar->x);
>}
You should thank CWSDPMI for pointing out that this code is buggy!
Variable "bar" starts out as NULL and the first thing you do is to
follow it; this is undefined behaviour in C. Try allocating a bit
of memory for it.
Morten Welinder
terra AT diku DOT dk
| webmaster | delorie software privacy |
| Copyright © 2019 by DJ Delorie | Updated Jul 2019 |